You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2005/12/23 05:10:37 UTC

svn commit: r358697 [1/2] - in /webservices/axis2/trunk/c: ./ include/ modules/core/clientapi/src/ modules/core/deployment/src/ modules/core/description/src/ modules/core/engine/src/ modules/core/receivers/ modules/core/receivers/src/ modules/platforms...

Author: damitha
Date: Thu Dec 22 20:09:59 2005
New Revision: 358697

URL: http://svn.apache.org/viewcvs?rev=358697&view=rev
Log:
Description builder completed


Added:
    webservices/axis2/trunk/c/include/axis2_class_loader.h
    webservices/axis2/trunk/c/include/axis2_desc_builder.h
    webservices/axis2/trunk/c/modules/core/deployment/src/axis2_deployment.h
    webservices/axis2/trunk/c/modules/core/deployment/src/desc_builder.c
    webservices/axis2/trunk/c/modules/core/deployment/src/repos_listener.c
    webservices/axis2/trunk/c/modules/core/description/src/dll_desc.c
    webservices/axis2/trunk/c/modules/core/receivers/
    webservices/axis2/trunk/c/modules/core/receivers/Makefile.am
    webservices/axis2/trunk/c/modules/core/receivers/src/
    webservices/axis2/trunk/c/modules/core/receivers/src/Makefile.am
    webservices/axis2/trunk/c/modules/core/receivers/src/msg_recv.c
      - copied unchanged from r358508, webservices/axis2/trunk/c/modules/core/engine/src/msg_recv.c
    webservices/axis2/trunk/c/modules/platforms/
    webservices/axis2/trunk/c/modules/platforms/axis2_platform_auto_sense.h
    webservices/axis2/trunk/c/modules/platforms/unix/
    webservices/axis2/trunk/c/modules/platforms/unix/axis2_unix.h
    webservices/axis2/trunk/c/modules/util/src/class_loader.c
Removed:
    webservices/axis2/trunk/c/modules/core/engine/src/msg_recv.c
Modified:
    webservices/axis2/trunk/c/configure.ac
    webservices/axis2/trunk/c/include/axis2.h
    webservices/axis2/trunk/c/include/axis2_conf_ctx.h
    webservices/axis2/trunk/c/include/axis2_handler_desc.h
    webservices/axis2/trunk/c/include/axis2_param.h
    webservices/axis2/trunk/c/include/axis2_param_container.h
    webservices/axis2/trunk/c/include/axis2_phase.h
    webservices/axis2/trunk/c/modules/core/clientapi/src/Makefile.am
    webservices/axis2/trunk/c/modules/core/deployment/src/Makefile.am
    webservices/axis2/trunk/c/modules/core/description/src/Makefile.am
    webservices/axis2/trunk/c/modules/core/description/src/handler_desc.c
    webservices/axis2/trunk/c/modules/core/description/src/svc.c
    webservices/axis2/trunk/c/modules/core/engine/src/Makefile.am
    webservices/axis2/trunk/c/modules/core/engine/src/engine.c
    webservices/axis2/trunk/c/modules/core/engine/src/phase.c
    webservices/axis2/trunk/c/modules/util/src/Makefile.am
    webservices/axis2/trunk/c/modules/xml/om/src/Makefile.am

Modified: webservices/axis2/trunk/c/configure.ac
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/configure.ac?rev=358697&r1=358696&r2=358697&view=diff
==============================================================================
--- webservices/axis2/trunk/c/configure.ac (original)
+++ webservices/axis2/trunk/c/configure.ac Thu Dec 22 20:09:59 2005
@@ -104,6 +104,8 @@
     modules/core/deployment/src/Makefile \
     modules/core/clientapi/Makefile \
     modules/core/clientapi/src/Makefile \
+    modules/core/receivers/Makefile \
+    modules/core/receivers/src/Makefile \
     modules/xml/Makefile \
     modules/xml/parser/Makefile \
     modules/xml/parser/guththila/Makefile \

Modified: webservices/axis2/trunk/c/include/axis2.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2.h?rev=358697&r1=358696&r2=358697&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2.h (original)
+++ webservices/axis2/trunk/c/include/axis2.h Thu Dec 22 20:09:59 2005
@@ -115,207 +115,213 @@
 /******************************************************************************/
 /********************Axis2 specific constants**********************************/
 /******************************************************************************/
+
+/** Method names in the loadable libraries */
+
+#define AXIS2_CREATE_FUNCTION "axis2_get_instance"
+#define AXIS2_DELETE_FUNCTION "axis2_remove_instance"
+
 /**
  * Field SOAP_STYLE_RPC_ENCODED
  */
-/* static const int SOAP_STYLE_RPC_ENCODED = 1000;*/
+#define AXIS2_SOAP_STYLE_RPC_ENCODED 1000
 
 /**
  * Field SOAP_STYLE_RPC_LITERAL
  */
-/*static const int SOAP_STYLE_RPC_LITERAL = 1001; */
+/*#define AXIS2_SOAP_STYLE_RPC_LITERAL 1001 */
 
 /**
  * Field SOAP_STYLE_DOC_LITERAL_WRAPPED
  */
-/* static const int SOAP_STYLE_DOC_LITERAL_WRAPPED = 1002; */
+#define AXIS2_SOAP_STYLE_DOC_LITERAL_WRAPPED 1002
 
 /**
  * Field APPLICATION_SCOPE
  */
-/* static const axis2_char_t * APPLICATION_SCOPE = "application"; */
+#define AXIS2_APPLICATION_SCOPE "application"
 
 /**
  * Field SESSION_SCOPE
  */
-/* static const axis2_char_t * SESSION_SCOPE = "session"; */
+#define AXIS2_SESSION_SCOPE "session"
 
 /**
  * Field GLOBAL_SCOPE
  */
-/* static const axis2_char_t * MESSAGE_SCOPE = "message"; */
+#define AXIS2_MESSAGE_SCOPE "message"
 
 /**
  * Field PHASE_SERVICE
  */
-/* static const axis2_char_t * PHASE_SERVICE = "service"; */
+#define AXIS2_PHASE_SERVICE "service"
 
 /**
  * Field PHASE_TRANSPORT
  */
-/* static const axis2_char_t * PHASE_TRANSPORT = "transport"; */
+#define AXIS2_PHASE_TRANSPORT "transport"
 
 /**
  * Field PHASE_GLOBAL
  */
-/* static const axis2_char_t * PHASE_GLOBAL = "global"; */
+#define AXIS2_PHASE_GLOBAL "global"
 
 /**
  * Field SESSION_CONTEXT_PROPERTY
  */
-/* static const axis2_char_t * SESSION_CONTEXT_PROPERTY = "SessionContext"; */
+#define AXIS2_SESSION_CONTEXT_PROPERTY "SessionContext"
 
 /**
  * Field TRANSPORT_TCP
  */
-/* static const axis2_char_t * TRANSPORT_TCP = "tcp"; */
+#define AXIS2_TRANSPORT_TCP "tcp"
 
 /**
  * Field TRANSPORT_HTTP
  */
-/* static const axis2_char_t * TRANSPORT_HTTP = "http"; */
+#define AXIS2_TRANSPORT_HTTP "http"
 
 
 
-/* static const axis2_char_t * TRANSPORT_MAIL = "mail"; */
+#define AXIS2_TRANSPORT_MAIL "mail"
 
-/* static const axis2_char_t * TRANSPORT_JMS = "jms"; */
+#define AXIS2_TRANSPORT_JMS "jms"
 
-/* static const axis2_char_t * TRANSPORT_LOCAL = "local"; */
+#define AXIS2_TRANSPORT_LOCAL "local"
 
 /**
  * Field LISTSERVICES
  */
-/* static const axis2_char_t * REQUEST_URL_PREFIX = "/services"; */
+#define AXIS2_REQUEST_URL_PREFIX "/services"
 
-/* static const axis2_char_t * LISTSERVICES = "listServices"; */
+#define AXIS2_LISTSERVICES "listServices"
 
-/* static const axis2_char_t * LIST_SERVICE_FOR_MODULE_ENGAMNET = "listop"; */
+#define AXIS2_LIST_SERVICE_FOR_MODULE_ENGAMNET "listop"
 
 
 /**
  * List service for adminpagse
  */
-/* static const axis2_char_t * ADMIN_LISTSERVICES = "listService"; */
+#define AXIS2_ADMIN_LISTSERVICES "listService"
 
-/* static const axis2_char_t * LIST_MODULES = "listModules"; */
+#define AXIS2_LIST_MODULES "listModules"
 
-/* static const axis2_char_t * LIST_GLOABLLY_ENGAGED_MODULES = "globalModules"; */
+#define AXIS2_LIST_GLOABLLY_ENGAGED_MODULES "globalModules"
 
-/* static const axis2_char_t * LIST_PHASES = "listPhases"; */
+#define AXIS2_LIST_PHASES "listPhases"
 
-/* static const axis2_char_t * ENGAGE_GLOBAL_MODULE = "engagingglobally"; */
-/* static const axis2_char_t * ENGAGE_MODULE_TO_SERVICE = "engageToService"; */
+#define AXIS2_ENGAGE_GLOBAL_MODULE "engagingglobally"
+#define AXIS2_ENGAGE_MODULE_TO_SERVICE "engageToService"
 
-/* static const axis2_char_t * ENGAGE_MODULE_TO_SERVICE_GROUP = "engageToServiceGroup"; */
+#define AXIS2_ENGAGE_MODULE_TO_SERVICE_GROUP "engageToServiceGroup"
 
-/* static const axis2_char_t * ADMIN_LOGIN = "adminlogin"; */
+#define AXIS2_ADMIN_LOGIN "adminlogin"
 
-/* static const axis2_char_t * LIST_CONTEXTS = "listContexts"; */
-/* static const axis2_char_t * LOGOUT = "logout"; */
+#define AXIS2_LIST_CONTEXTS "listContexts"
+#define AXIS2_LOGOUT "logout"
 
-/* static const axis2_char_t * VIEW_GLOBAL_HANDLERS = "viewGlobalHandlers"; */
-/* static const axis2_char_t * SELECT_SERVICE = "selectService"; */
-/* static const axis2_char_t * EDIR_SERVICE_PARA = "editServicepara"; */
-/* static const axis2_char_t * SELECT_SERVICE_FOR_PARA_EDIT = "selectServiceParaEdit"; */
-/* static const axis2_char_t * VIEW_SERVICE_HANDLERS = "viewServiceHandlers"; */
-/* static const axis2_char_t * LIST_SERVIC_GROUPS = "listServciceGroups"; */
+#define AXIS2_VIEW_GLOBAL_HANDLERS "viewGlobalHandlers"
+#define AXIS2_SELECT_SERVICE "selectService"
+#define AXIS2_EDIR_SERVICE_PARA "editServicepara"
+#define AXIS2_SELECT_SERVICE_FOR_PARA_EDIT "selectServiceParaEdit"
+#define AXIS2_VIEW_SERVICE_HANDLERS "viewServiceHandlers"
+#define AXIS2_LIST_SERVIC_GROUPS "listServciceGroups"
 
 /**
  * Field SERVICE_MAP
  */
-/* static const axis2_char_t * SERVICE_MAP = "servicemap"; */
-/* static const axis2_char_t * SERVICE_GROUP_MAP = "serviceGroupmap"; */
+#define AXIS2_SERVICE_MAP "servicemap"
+#define AXIS2_SERVICE_GROUP_MAP "serviceGroupmap"
 
-/* static const axis2_char_t * CONFIG_CONTEXT = "config_context"; */
+#define AXIS2_CONFIG_CONTEXT "config_context"
 
-/* static const axis2_char_t * SERVICE = "service"; */
+#define AXIS2_SERVICE "service"
 
-/* static const axis2_char_t * OPEARTION_MAP = "opmap"; */
+#define AXIS2_OPEARTION_MAP "opmap"
 /**
  * Field Available modules
  */
-/* static const axis2_char_t * MODULE_MAP = "modulemap"; */
+#define AXIS2_MODULE_MAP "modulemap"
 
-/* static const axis2_char_t * SELECT_SERVICE_TYPE = "SELECT_SERVICE_TYPE"; */
+#define AXIS2_SELECT_SERVICE_TYPE "SELECT_SERVICE_TYPE"
 
-/* static const axis2_char_t * GLOBAL_HANDLERS = "axisconfig"; */
-/* static const axis2_char_t * SERVICE_HANDLERS = "serviceHandlers"; */
+#define AXIS2_GLOBAL_HANDLERS "axisconfig"
+#define AXIS2_SERVICE_HANDLERS "serviceHandlers"
 
-/* static const axis2_char_t * PHASE_LIST = "phaseList"; */
+#define AXIS2_PHASE_LIST "phaseList"
 
-/* static const axis2_char_t * LIST_OPS_FOR_THE_SERVICE = "listOperations"; */
+#define AXIS2_LIST_OPS_FOR_THE_SERVICE "listOperations"
 
-/* static const axis2_char_t * REMOVE_SERVICE = "removeService"; */
+#define AXIS2_REMOVE_SERVICE "removeService"
 
-/* static const axis2_char_t * ENGAGE_STATUS = "engagestatus"; */
+#define AXIS2_ENGAGE_STATUS "engagestatus"
 
 /**
  * Errorness servcie
  */
-/* static const axis2_char_t * ERROR_SERVICE_MAP = "errprservicemap"; */
-/* static const axis2_char_t * ERROR_MODULE_MAP = "errormodulesmap"; */
+#define AXIS2_ERROR_SERVICE_MAP "errprservicemap"
+#define AXIS2_ERROR_MODULE_MAP "errormodulesmap"
 
-/* static const axis2_char_t * IS_FAULTY = "Fault"; */
+#define AXIS2_IS_FAULTY "Fault"
 
-/* static const axis2_char_t * MODULE_ADDRESSING = "addressing"; */
+#define AXIS2_MODULE_ADDRESSING "addressing"
 
-/* static const axis2_char_t * USER_NAME = "userName"; */
-/* static const axis2_char_t * PASSWORD = "password"; */
+#define AXIS2_USER_NAME "userName"
+#define AXIS2_PASSWORD "password"
 
 /**
  * Field SINGLE_SERVICE
  */
-/* static const axis2_char_t * SINGLE_SERVICE = "singleservice"; */
-/* static const axis2_char_t * WSDL_CONTENT = "wsdl"; */
+#define AXIS2_SINGLE_SERVICE "singleservice"
+#define AXIS2_WSDL_CONTENT "wsdl"
 
 /**
  * Field METHOD_NAME_ESCAPE_CHARACTOR
  */
-/* static const char METHOD_NAME_ESCAPE_CHARACTOR = '?'; */
+/* static const char METHOD_NAME_ESCAPE_CHARACTOR '?' */
 
-/* static const axis2_char_t * LOGGED = "Logged"; */
+#define AXIS2_LOGGED "Logged"
 
 
-/* static const char SERVICE_NAME_SPLIT_CHAR =':'; */
+/* static const char SERVICE_NAME_SPLIT_CHAR':' */
 
 
 /*********************Configuration *******************************************/
 
-/* static const axis2_char_t * ENABLE_REST = "enableREST"; */
-/* static const axis2_char_t * ENABLE_REST_THROUGH_GET="restThroughGet"; */
+#define AXIS2_ENABLE_REST "enableREST"
+#define AXIS2_ENABLE_REST_THROUGH_GET "restThroughGet"
 /* globally enable MTOM */
-/* static const axis2_char_t * ENABLE_MTOM = "enableMTOM"; */
-/* static const axis2_char_t * ATTACHMENT_TEMP_DIR = "attachmentDIR"; */
-/* static const axis2_char_t * CACHE_ATTACHMENTS = "cacheAttachments"; */
-/* static const axis2_char_t * FILE_SIZE_THRESHOLD = "sizeThreshold"; */
+#define AXIS2_ENABLE_MTOM "enableMTOM"
+#define AXIS2_ATTACHMENT_TEMP_DIR "attachmentDIR"
+#define AXIS2_CACHE_ATTACHMENTS "cacheAttachments"
+#define AXIS2_FILE_SIZE_THRESHOLD "sizeThreshold"
 
 /******************************************************************************/
 
-/* static const axis2_char_t * VALUE_TRUE = "true"; */
-/* static const axis2_char_t * VALUE_FALSE = "false"; */
-/* static const axis2_char_t * CONTAINER_MANAGED = "ContainerManaged"; */
-/* static const axis2_char_t * RESPONSE_WRITTEN = "CONTENT_WRITTEN"; */
-#define WSA_ACTION "wsamapping"
+#define AXIS2_VALUE_TRUE "true"
+#define AXIS2_VALUE_FALSE "false"
+#define AXIS2_CONTAINER_MANAGED "ContainerManaged"
+#define AXIS2_RESPONSE_WRITTEN "CONTENT_WRITTEN"
+#define AXIS2_WSA_ACTION "wsamapping"
 
 
-/* static const axis2_char_t * TESTING_PATH = "target/test-resources/"; */
+#define AXIS2_TESTING_PATH "target/test-resources/"
 
-/* static const axis2_char_t * TESTING_REPOSITORY = "target/test-resources/samples"; */
+#define AXIS2_TESTING_REPOSITORY "target/test-resources/samples"
 
 
 /*************************** REST_WITH_GET ************************************/
 
-/* static const axis2_char_t * GET_PARAMETER_OP = "op"; */
-/* static const axis2_char_t * GET_PARAMETER_URL = "http://ws.apache.org/goGetWithREST"; */
+#define AXIS2_GET_PARAMETER_OP "op"
+#define AXIS2_GET_PARAMETER_URL "http://ws.apache.org/goGetWithREST"
 
 /******************************************************************************/
 
 
-/* static const axis2_char_t * AXIS2_NAMESPACE_PREFIX = "axis2"; */
-/* static const axis2_char_t * AXIS2_NAMESPACE_URI = "http://ws.apache.org/namespaces/axis2"; */
+#define AXIS2_AXIS2_NAMESPACE_PREFIX "axis2"
+#define AXIS2_AXIS2_NAMESPACE_URI "http://ws.apache.org/namespaces/axis2"
 
-/* static const axis2_char_t * SERVICE_GROUP_ID = "ServiceGroupId"; */    
+#define AXIS2_SERVICE_GROUP_ID "ServiceGroupId"    
 
 /** @} */
 

Added: webservices/axis2/trunk/c/include/axis2_class_loader.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_class_loader.h?rev=358697&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_class_loader.h (added)
+++ webservices/axis2/trunk/c/include/axis2_class_loader.h Thu Dec 22 20:09:59 2005
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#ifndef AXIS2_CLASS_LOADER_H
+#define AXIS2_CLASS_LOADER_H
+
+/**
+  * @file axis2_class_loader.h
+  * @brief axis2 class loader interface
+  */
+
+#include <axis2_defines.h>
+#include <axis2_qname.h>
+#include <axis2_error.h>
+#include <axis2.h>
+#include <axis2_dll_desc.h>
+#include <axis2_svc_skeleton.h>
+#include <axis2_param.h>
+#include <axis2_platform_auto_sense.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/** @defgroup axis2_class_loader Class Loader 
+ * @ingroup axis2_util
+ * @{
+ */
+    
+axis2_status_t AXIS2_CALL
+axis2_class_loader_init(axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_class_loader_delete_dll (axis2_env_t **env,
+                                    axis2_dll_desc_t *dll_desc);
+
+void *AXIS2_CALL
+axis2_class_loader_create_dll (axis2_env_t **env,
+                                axis2_param_t *impl_info_param);
+    
+ 
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* AXIS2_CLASS_LOADER_H */

Modified: webservices/axis2/trunk/c/include/axis2_conf_ctx.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_conf_ctx.h?rev=358697&r1=358696&r2=358697&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_conf_ctx.h (original)
+++ webservices/axis2/trunk/c/include/axis2_conf_ctx.h Thu Dec 22 20:09:59 2005
@@ -191,7 +191,7 @@
 #define AXIS2_CONF_CTX_SET_ROOT_DIR(conf_ctx, env, path) ((conf_ctx)->ops->set_root_dir(conf_ctx, env, path))
 #define AXIS2_CONF_CTX_INIT(conf_ctx, env, conf) ((conf_ctx)->ops->init(conf_ctx, env, conf))
 #define AXIS2_CONF_CTX_FREE(conf_ctx, env) ((conf_ctx)->ops->free(conf_ctx, env))
-#define AXIS2_CONF_CTX_FILL_CXTS(conf_ctx, env, msg_ctx) ((conf_ctx)->ops->fill_ctxs(conf_ctx, env, msg_ctx))
+#define AXIS2_CONF_CTX_FILL_CTXS(conf_ctx, env, msg_ctx) ((conf_ctx)->ops->fill_ctxs(conf_ctx, env, msg_ctx))
 
 /************************** End of function macros ****************************/    
 

Added: webservices/axis2/trunk/c/include/axis2_desc_builder.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_desc_builder.h?rev=358697&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_desc_builder.h (added)
+++ webservices/axis2/trunk/c/include/axis2_desc_builder.h Thu Dec 22 20:09:59 2005
@@ -0,0 +1,230 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_DESC_BUILDER_H
+#define AXIS2_DESC_BUILDER_H
+
+/**
+ * @file axis2_desc_builder.h
+ * @brief Axis2 Description Builder interface
+ */
+
+#include <axis2.h>
+#include <axis2_error.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_allocator.h>
+
+#include <axis2_deployment.h>
+#include <axis2_dep_engine.h>
+#include <axis2_flow.h>
+#include <axis2_om_stax_builder.h>
+#include <axis2_om_document.h>
+#include <axis2_om_element.h>
+#include <axis2_om_node.h>
+#include <axis2_param_container.h>
+#include <axis2_handler_desc.h>
+#include <axis2_om_attribute.h>
+#include <axis2_xml_reader.h>
+#include <axis2_handler_desc.h>
+#include <axis2_op.h>
+#include <axis2_om_children_with_specific_attribute_iterator.h>
+#include <axis2_phase.h> 
+#include <axis2_dll_desc.h>
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_flow;
+struct axis2_phase;
+struct axis2_dep_engine;
+   
+typedef struct axis2_desc_builder axis2_desc_builder_t;
+typedef struct axis2_desc_builder_ops axis2_desc_builder_ops_t;
+
+/** @defgroup axis2_desc_builder Description Builder
+ * @ingroup axis2_deployment
+ * @{
+ */
+
+/** 
+ * @brief Description Builder ops struct
+ * Encapsulator struct for ops of axis2_desc_builder
+ */
+AXIS2_DECLARE_DATA struct axis2_desc_builder_ops
+{
+	/** De-allocate memory
+  	 * @return status code
+  	 */
+	axis2_status_t (AXIS2_CALL *
+    free)(axis2_desc_builder_t *desc_builder,
+	        axis2_env_t **env);
+                               
+     /**
+     * This will creat OMElemnt for a given descrition document (axis2.xml , 
+     * services.xml and module.xml)
+     *
+     * @return OMElement <code>OMElement</code>
+     */
+    struct axis2_om_node *(AXIS2_CALL *
+    build_OM) (axis2_desc_builder_t *desc_builder,
+                    axis2_env_t **env);
+    
+    
+    /**
+     * To process Flow elements in services.xml
+     * @param flow_element       <code>axis2_om_element_t</code>
+     * @return flow
+     */
+    struct axis2_flow *(AXIS2_CALL *
+    process_flow) (axis2_desc_builder_t *desc_builder,
+                                    axis2_env_t **env,
+                                    struct axis2_om_element *flow_element,
+                                    axis2_param_container_t *parent,
+                                    axis2_om_node_t *node);
+    
+    /**
+     *  To process Handler element
+     * @param handler_element    <code>OMElement</code>
+     * @return
+     */
+    struct axis2_handler_desc *(AXIS2_CALL *
+    process_handler) (axis2_desc_builder_t *desc_builder,
+                                        axis2_env_t **env,
+                                        axis2_om_node_t *handler_element,
+                                        axis2_param_container_t *parent);
+    
+    /**
+     * To get the Param out from the OM
+     * @param params <code>axis2_param_t</code>
+     * @param param_container <code>axis2_param_container_t</code>
+     * @param parent <code>axis2_param_container_t</code>
+     */
+    axis2_status_t (AXIS2_CALL *
+    process_params) (axis2_desc_builder_t *desc_builder,
+                                    axis2_env_t **env,
+                                    axis2_om_children_qname_iterator_t *params,
+                                    axis2_param_container_t *param_container,
+                                    axis2_param_container_t *parent );
+    
+    
+    axis2_status_t (AXIS2_CALL *
+    process_op_module_refs) (axis2_desc_builder_t *desc_builder,
+                              axis2_env_t **env,
+                              axis2_om_children_qname_iterator_t *module_refs, 
+                              struct axis2_op *op);
+                                  
+    struct axis2_msg_recv *(AXIS2_CALL *
+    load_msg_recv) (axis2_desc_builder_t *desc_builder,
+                                        axis2_env_t **env,
+                                        axis2_om_element_t *recv_element);
+    
+    struct axis2_msg_recv *(AXIS2_CALL *
+    load_default_msg_recv) (axis2_desc_builder_t *desc_builder,
+                                                axis2_env_t **env);
+    
+    /**
+     * This method is used to retrive service name form the arechive file name
+     * if the archive file name is service1.aar , then axis service name would be service1
+     *
+     * @param file_name
+     * @return axis2_char_t *
+     */
+    axis2_char_t *(AXIS2_CALL *
+    get_short_file_name) (axis2_desc_builder_t *desc_builder,
+                                            axis2_env_t **env,
+                                            axis2_char_t *file_name);
+    
+    
+    /**
+     * this method is to get the value of attribue
+     * eg xsd:anyVal --> anyVal
+     *
+     * @return String
+     */
+    axis2_char_t *(AXIS2_CALL *
+    get_value) (axis2_desc_builder_t *desc_builder,
+                                    axis2_env_t **env,
+                                    axis2_char_t *in);
+
+
+};
+
+/** 
+ * @brief Description Builder struct 
+ */  
+AXIS2_DECLARE_DATA struct axis2_desc_builder
+{
+	axis2_desc_builder_ops_t *ops;
+};
+
+/**
+ * Creates description builder struct
+ * @return pointer to newly created description builder
+ */
+AXIS2_DECLARE(axis2_desc_builder_t *) 
+axis2_desc_builder_create_with_input_stream_and_dep_engine (
+                                        axis2_env_t **env, 
+                                        axis2_char_t *file_name, 
+                                        struct axis2_dep_engine *engine);
+
+/*************************** Function macros **********************************/
+
+#define AXIS2_DESC_BUILDER_FREE(desc_builder, env) \
+		((desc_builder->ops)->free (desc_builder, env))
+
+#define AXIS2_DESC_BUILDER_BUILD_OM(desc_builder, env) \
+		((desc_builder->ops)->build_OM (desc_builder, env))                                        
+
+#define AXIS2_DESC_BUILDER_PROCESS_FLOW(desc_builder, env, flow_element, \
+        parent, node) ((desc_builder->ops)->process_flow (desc_builder, env, \
+            flow_element, parent, node))                                          
+
+#define AXIS2_DESC_BUILDER_PROCESS_HANDLER(desc_builder, env, handler_element, \
+        parent) ((desc_builder->ops)->process_handler (desc_builder, \
+            env, handler_element, parent))                                          
+
+#define AXIS2_DESC_BUILDER_PROCESS_PARAMS(desc_builder, env, params, \
+        param_container, parent) ((desc_builder->ops)->process_params \
+            (desc_builder, env, params, param_container, parent))                                          
+
+#define AXIS2_DESC_BUILDER_PROCESS_OP_MODULE_REFS(desc_builder, env, \
+        module_refs, op) ((desc_builder->ops)->process_op_module_refs \
+            (desc_builder, env, module_refs, op))                                          
+
+#define AXIS2_DESC_BUILDER_LOAD_MSG_RECV(desc_builder, env, recv_element) \
+		((desc_builder->ops)->load_msg_recv (desc_builder, env, recv_element))  
+
+#define AXIS2_DESC_BUILDER_LOAD_DEFAULT_MSG_RECV(desc_builder, env) \
+		((desc_builder->ops)->load_default_msg_recv (desc_builder, env))  
+
+#define AXIS2_DESC_BUILDER_GET_SHORT_FILE_NAME(desc_builder, env, file_name) \
+		((desc_builder->ops)->get_short_file_name (desc_builder, env, file_name))  
+
+#define AXIS2_DESC_BUILDER_GET_VALUE(desc_builder, env, in) \
+		((desc_builder->ops)->get_value (desc_builder, env, in))  
+                                        
+/*************************** End of function macros ***************************/
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif  /* AXIS2_DESC_BUILDER_H */

Modified: webservices/axis2/trunk/c/include/axis2_handler_desc.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_handler_desc.h?rev=358697&r1=358696&r2=358697&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_handler_desc.h (original)
+++ webservices/axis2/trunk/c/include/axis2_handler_desc.h Thu Dec 22 20:09:59 2005
@@ -48,42 +48,76 @@
  */
  AXIS2_DECLARE_DATA   typedef struct axis2_handler_desc_ops
     { 
-        axis2_qname_t* (AXIS2_CALL *get_qname) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env);
-        axis2_status_t (AXIS2_CALL *set_qname) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env, axis2_qname_t *qname);
-        axis2_phase_rule_t* (AXIS2_CALL *get_rules) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env);
-        axis2_status_t (AXIS2_CALL *set_rules) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env, axis2_phase_rule_t *phase_rule);
-        axis2_param_t* (AXIS2_CALL *get_param) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env, axis2_char_t *name);
-        axis2_status_t (AXIS2_CALL *add_param) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env, axis2_param_t * param);
-        axis2_array_list_t* (AXIS2_CALL *get_params) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env);
+        axis2_qname_t* (AXIS2_CALL *
+        get_qname) (struct axis2_handler_desc *handler_desc, 
+                        axis2_env_t **env);
+        
+        axis2_status_t (AXIS2_CALL *
+        set_qname) (struct axis2_handler_desc *handler_desc, 
+                        axis2_env_t **env, 
+                        axis2_qname_t *qname);
+        
+        axis2_phase_rule_t* (AXIS2_CALL *
+        get_rules) (struct axis2_handler_desc *handler_desc, 
+                        axis2_env_t **env);
+        
+        axis2_status_t (AXIS2_CALL *
+        set_rules) (struct axis2_handler_desc *handler_desc, 
+                        axis2_env_t **env, 
+                        axis2_phase_rule_t *phase_rule);
+        
+        axis2_param_t* (AXIS2_CALL *
+        get_param) (struct axis2_handler_desc *handler_desc, 
+                        axis2_env_t **env, 
+                        axis2_char_t *name);
+        
+        axis2_status_t (AXIS2_CALL *
+        add_param) (struct axis2_handler_desc *handler_desc, 
+                        axis2_env_t **env, 
+                        axis2_param_t * param);
+        
+        axis2_array_list_t* (AXIS2_CALL *
+        get_params) (struct axis2_handler_desc *handler_desc, 
+                     axis2_env_t **env);
 
         /**
         * checks whether the paramter is locked at any levle 
         */
-        axis2_bool_t (AXIS2_CALL *is_param_locked)(struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env, axis2_char_t * param_name);
-        axis2_handler_t* (AXIS2_CALL *get_handler) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env);
-        axis2_status_t (AXIS2_CALL *set_handler) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env, axis2_handler_t * handler);
-        axis2_char_t* (AXIS2_CALL *get_class_name) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env);
-        axis2_status_t (AXIS2_CALL *set_class_name) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env, axis2_char_t *class_name);
-        axis2_param_container_t* (AXIS2_CALL *get_parent) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env);
-        axis2_status_t (AXIS2_CALL *set_parent) (struct axis2_handler_desc *handler_desc, 
-                                               axis2_env_t **env,
-                                                axis2_param_container_t * parent);
-        axis2_status_t (AXIS2_CALL *free) (struct axis2_handler_desc *handler_desc, 
+        axis2_bool_t (AXIS2_CALL *
+        is_param_locked)(struct axis2_handler_desc *handler_desc, 
+                         axis2_env_t **env, axis2_char_t * param_name);
+        
+        axis2_handler_t* (AXIS2_CALL *
+        get_handler) (struct axis2_handler_desc *handler_desc, 
+                      axis2_env_t **env);
+        
+        axis2_status_t (AXIS2_CALL *
+        set_handler) (struct axis2_handler_desc *handler_desc, 
+                        axis2_env_t **env, 
+                        axis2_handler_t * handler);
+        
+        axis2_char_t* (AXIS2_CALL *
+        get_class_name) (struct axis2_handler_desc *handler_desc, 
+                            axis2_env_t **env);
+        
+        axis2_status_t (AXIS2_CALL *
+        set_class_name) (struct axis2_handler_desc *handler_desc, 
+                            axis2_env_t **env, 
+                            axis2_char_t *class_name);
+        
+        axis2_param_container_t* (AXIS2_CALL *
+        get_parent) (struct axis2_handler_desc *handler_desc, 
                                                axis2_env_t **env);
         
+        axis2_status_t (AXIS2_CALL *
+        set_parent) (struct axis2_handler_desc *handler_desc, 
+                        axis2_env_t **env,
+                        axis2_param_container_t * parent);
+        
+        axis2_status_t (AXIS2_CALL *
+        free) (struct axis2_handler_desc *handler_desc, 
+                axis2_env_t **env);
+        
     } axis2_handler_desc_ops_t;
 	
    /** 
@@ -93,6 +127,10 @@
     {
         /** Handler Description related ops */
         axis2_handler_desc_ops_t *ops;
+        
+        /** param container */
+        axis2_param_container_t *param_container;
+        
     } axis2_handler_desc_t;
 
 
@@ -100,21 +138,59 @@
  * creates handler_desc struct
  * @param qname qname, can be NULL
  */
-AXIS2_DECLARE(axis2_handler_desc_t*) axis2_handler_desc_create_with_qname(axis2_env_t **env, axis2_qname_t *qname);
+AXIS2_DECLARE(axis2_handler_desc_t*) 
+axis2_handler_desc_create_with_qname(axis2_env_t **env, axis2_qname_t *qname);
 
-#define AXIS2_HANDLER_DESC_GET_HANDLER(handler_desc, env) ((handler_desc)->ops->get_handler(handler_desc, env))
-#define AXIS2_HANDLER_DESC_SET_HANDLER(handler_desc, env, handler) ((handler_desc)->ops->set_handler(handler_desc, env, handler))
-#define AXIS2_HANDLER_DESC_GET_RULES(handler_desc, env) ((handler_desc)->ops->get_rules(handler_desc, env))
-#define AXIS2_HANDLER_DESC_SET_RULES(handler_desc, env, rules) ((handler_desc)->ops->set_rules(handler_desc, env, rules))
-#define AXIS2_HANDLER_DESC_GET_QNAME(handler_desc, env) ((handler_desc)->ops->get_qname(handler_desc, env))
-#define AXIS2_HANDLER_DESC_SET_QNAME(handler_desc, env, name) ((handler_desc)->ops->set_qname(handler_desc, env, name))
-#define AXIS2_HANDLER_DESC_GET_PARAM(handler_desc, env, name) ((handler_desc)->ops->get_param(handler_desc, env, name))
-#define AXIS2_HANDLER_DESC_ADD_PARAM(handler_desc, env, param) ((handler_desc)->ops->add_param(handler_desc, env, param))
-#define AXIS2_HANDLER_DESC_IS_PHASE_FIRST(handler_desc, env) ((handler_desc)->ops->is_phase_first((handler_desc, env))
-#define AXIS2_HANDLER_DESC_GET_PHASE_FIRST(handler_desc, env, phase_first) ((handler_desc)->ops->set_phase_first(handler_desc, env, phase_first))
-#define AXIS2_HANDLER_DESC_IS_PHASE_LAST(handler_desc, env) ((handler_desc)->ops->is_phase_last(handler_desc, env))
-#define AXIS2_HANDLER_DESC_GET_PHASE_LAST(handler_desc, env, phase_last) ((handler_desc)->ops->set_phase_last(handler_desc, env, phase_last))
-#define AXIS2_HANDLER_DESC_FREE(handler_desc, env) ((handler_desc)->ops->free(handler_desc, env))
+#define AXIS2_HANDLER_DESC_GET_HANDLER(handler_desc, env) \
+        ((handler_desc)->ops->get_handler(handler_desc, env))
+    
+#define AXIS2_HANDLER_DESC_SET_HANDLER(handler_desc, env, handler) \
+        ((handler_desc)->ops->set_handler(handler_desc, env, handler))
+    
+#define AXIS2_HANDLER_DESC_GET_RULES(handler_desc, env) \
+        ((handler_desc)->ops->get_rules(handler_desc, env))
+    
+#define AXIS2_HANDLER_DESC_SET_RULES(handler_desc, env, rules) \
+        ((handler_desc)->ops->set_rules(handler_desc, env, rules))
+    
+#define AXIS2_HANDLER_DESC_GET_QNAME(handler_desc, env) \
+        ((handler_desc)->ops->get_qname(handler_desc, env))
+    
+#define AXIS2_HANDLER_DESC_SET_QNAME(handler_desc, env, name) \
+        ((handler_desc)->ops->set_qname(handler_desc, env, name))
+    
+#define AXIS2_HANDLER_DESC_GET_PARAM(handler_desc, env, name) \
+        ((handler_desc)->ops->get_param(handler_desc, env, name))
+        
+#define AXIS2_HANDLER_DESC_ADD_PARAM(handler_desc, env, param) \
+        ((handler_desc)->ops->add_param(handler_desc, env, param))
+        
+#define AXIS2_HANDLER_DESC_IS_PHASE_FIRST(handler_desc, env) \
+        ((handler_desc)->ops->is_phase_first((handler_desc, env))
+        
+#define AXIS2_HANDLER_DESC_GET_PHASE_FIRST(handler_desc, env, phase_first) \
+        ((handler_desc)->ops->set_phase_first(handler_desc, env, phase_first))
+        
+#define AXIS2_HANDLER_DESC_IS_PHASE_LAST(handler_desc, env) \
+        ((handler_desc)->ops->is_phase_last(handler_desc, env))
+        
+#define AXIS2_HANDLER_DESC_GET_PHASE_LAST(handler_desc, env, phase_last) \
+        ((handler_desc)->ops->set_phase_last(handler_desc, env, phase_last))
+
+#define AXIS2_HANDLER_DESC_GET_CLASS_NAME(handler_desc, env) \
+        ((handler_desc)->ops->get_class_name(handler_desc, env))
+        
+#define AXIS2_HANDLER_DESC_SET_CLASS_NAME(handler_desc, env, class_name) \
+        ((handler_desc)->ops->set_class_name(handler_desc, env, class_name))
+
+#define AXIS2_HANDLER_DESC_GET_PARENT(handler_desc, env) \
+        ((handler_desc)->ops->get_parent(handler_desc, env))
+        
+#define AXIS2_HANDLER_DESC_SET_PARENT(handler_desc, env, parent) \
+        ((handler_desc)->ops->set_parent(handler_desc, env, parent))
+        
+#define AXIS2_HANDLER_DESC_FREE(handler_desc, env) \
+        ((handler_desc)->ops->free(handler_desc, env))
     
 /** @} */
     

Modified: webservices/axis2/trunk/c/include/axis2_param.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_param.h?rev=358697&r1=358696&r2=358697&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_param.h (original)
+++ webservices/axis2/trunk/c/include/axis2_param.h Thu Dec 22 20:09:59 2005
@@ -170,7 +170,7 @@
     ((param->ops)->get_name (param, env))
 
 #define AXIS2_PARAM_SET_VALUE(param, env, value) \
-    (((param->ops)->set_value (param , env, value))
+    ((param->ops)->set_value (param , env, value))
 
 #define AXIS2_PARAM_GET_VALUE(param, env) \
     ((param->ops)->get_value (param, env))
@@ -181,8 +181,14 @@
 #define AXIS2_PARAM_SET_LOCKED(param, env, locked) \
     ((param->ops)->set_locked (param, env, locked))
 
+#define AXIS2_PARAM_SET_PARAM_TYPE(param, env, type) \
+    ((param->ops)->set_param_type (param, env, type))
+ 
+#define AXIS2_PARAM_GET_PARAM_TYPE(param, env) \
+    ((param->ops)->get_param_type (param, env))
+    
 #define AXIS2_PARAM_SET_ELEMENT(param, env, element) \
-    (((param->ops)->set_param_element (param , env, element))
+    ((param->ops)->set_param_element (param , env, element))
 
 #define AXIS2_PARAM_GET_ELEMENT(param, env) \
     ((param->ops)->get_param_element (param, env))

Modified: webservices/axis2/trunk/c/include/axis2_param_container.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_param_container.h?rev=358697&r1=358696&r2=358697&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_param_container.h (original)
+++ webservices/axis2/trunk/c/include/axis2_param_container.h Thu Dec 22 20:09:59 2005
@@ -126,8 +126,7 @@
 #define AXIS2_PARAM_CONTAINER_GET_PARAMS(param_container, env) \
 		((param_container->ops)->get_params (param_container, env))
 
-#define AXIS2_PARAM_CONTAINER_IS_PARAM_LOCKED(param_container, env, \
-		param_name) \
+#define AXIS2_PARAM_CONTAINER_IS_PARAM_LOCKED(param_container, env, param_name) \
 		((param_container->ops)->is_param_locked (param_container, env, \
 		param_name))
 

Modified: webservices/axis2/trunk/c/include/axis2_phase.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_phase.h?rev=358697&r1=358696&r2=358697&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_phase.h (original)
+++ webservices/axis2/trunk/c/include/axis2_phase.h Thu Dec 22 20:09:59 2005
@@ -34,13 +34,13 @@
 {
 #endif
     /** Both Before and After */
-    static const int AXIS2_BOTH_BEFORE_AFTER = 0;    
+    #define AXIS2_PHASE_BOTH_BEFORE_AFTER  0    
     /** Before */
-    static const int AXIS2_BEFORE = 1;    
+    #define AXIS2_PHASE_BEFORE  1    
     /** After */
-    static const int AXIS2_AFTER = 2;    
+    #define AXIS2_PHASE_AFTER  2    
     /** Anywhere */
-    static const int AXIS2_ANYWHERE = 3;
+    #define AXIS2_PHASE_ANYWHERE  3
     
     struct axis2_phase_ops;
     struct axis2_phase;

Modified: webservices/axis2/trunk/c/modules/core/clientapi/src/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/clientapi/src/Makefile.am?rev=358697&r1=358696&r2=358697&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/src/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/src/Makefile.am Thu Dec 22 20:09:59 2005
@@ -6,4 +6,7 @@
 libaxis2_clientapi_la_LIBADD = $(LDFLAGS)
 INCLUDES = -I$(top_builddir)/include \
             -I$(top_builddir)/modules/util/src \
-            -I$(top_builddir)/modules/core/clientapi/src
+            -I$(top_builddir)/modules/core/clientapi/src \
+            -I$(top_builddir)/modules/wsdl/src \
+            -I$(top_builddir)/modules/core/description/src \
+            -I$(top_builddir)/modules/core/transport

Modified: webservices/axis2/trunk/c/modules/core/deployment/src/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/src/Makefile.am?rev=358697&r1=358696&r2=358697&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/src/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/src/Makefile.am Thu Dec 22 20:09:59 2005
@@ -1,6 +1,8 @@
 lib_LTLIBRARIES = libaxis2_deployment.la
 AM_CPPFLAGS = $(CPPFLAGS)
-libaxis2_deployment_la_SOURCES = phases_info.c 
+libaxis2_deployment_la_SOURCES = phases_info.c \
+                                    desc_builder.c \
+                                    dep_engine.c
 
 libaxis2_deployment_la_LIBADD = $(LDFLAGS)
 INCLUDES = -I${CUTEST_HOME}/include -I$(top_builddir)/include \
@@ -8,4 +10,7 @@
             -I$(top_builddir)/modules/util/src \
             -I$(top_builddir)/modules/wsdl/src \
             -I$(top_builddir)/modules/core/transport \
-            -I$(top_builddir)/modules/core/description/src
+            -I$(top_builddir)/modules/core/description/src \
+            -I$(top_builddir)/modules/core/deployment/src \
+            -I$(top_builddir)/modules/xml/parser \
+            -I$(top_builddir)/modules/platforms

Added: webservices/axis2/trunk/c/modules/core/deployment/src/axis2_deployment.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/src/axis2_deployment.h?rev=358697&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/src/axis2_deployment.h (added)
+++ webservices/axis2/trunk/c/modules/core/deployment/src/axis2_deployment.h Thu Dec 22 20:09:59 2005
@@ -0,0 +1,129 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#ifndef AXIS2_DEPLOYMENT_H
+#define AXIS2_DEPLOYMENT_H
+
+/**
+ * @file axis2_axis2_deployment.h
+ * @brief axis2 deployment
+ */
+ 
+#include <axis2.h>
+#include <axis2_error.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_allocator.h>
+#include <axis2_string.h>
+#include <axis2_hash.h>
+
+#ifdef __cplusplus
+extern "C" 
+{
+#endif
+
+/*********************************** Constansts********************************/
+
+/**
+ * DeployCons interface is to keep constent value required for Deployemnt
+ */
+
+#define AXIS2_SVC 0 /* if it is a service */
+#define AXIS2_MODULE 1 /* if it is a module */
+
+#define AXIS2_META_INF "META-INF"
+#define AXIS2_SVC_XML "META-INF/services.xml"
+#define AXIS2_SVC_WSDL_NAME "service.wsdl"
+#define AXIS2_SVC_WSDL_WITH_FOLDER "META-INF/service.wsdl"
+#define AXIS2_MODULEXML "META-INF/module.xml"
+#define AXIS2_PARAMETERST "parameter" /* paramater start tag */
+#define AXIS2_LISTENERST "listener" /* paramater start tag */
+#define AXIS2_HANDLERST "handler"
+#define AXIS2_MODULEST "module"
+#define AXIS2_MODULECONFIG "moduleConfig"
+#define AXIS2_PHASEST "phase"
+#define AXIS2_PHASE_ORDER "phaseOrder"
+#define AXIS2_TYPEMAPPINGST "typeMapping" /* typeMapping start tag */
+#define AXIS2_BEANMAPPINGST "beanMapping" /* beanMapping start tag */
+#define AXIS2_OPERATIONST "operation" /* operation start tag */
+#define AXIS2_INFLOWST "inflow" /* inflow start tag */
+#define AXIS2_OUTFLOWST "outflow" /* outflowr start tag */
+#define AXIS2_IN_FAILTFLOW "INfaultflow" /* faultflow start tag */
+#define AXIS2_OUT_FAILTFLOW "Outfaultflow" /* faultflow start tag */
+
+/* #define AXIS2_FOLDE_NAME "D:/Axis 2.0/projects/Deployement/test-data" */
+#define AXIS2_MODULE_PATH "/modules/"
+#define AXIS2_SVC_PATH "/services/"
+
+/* for jws file extension */
+#define AXIS2_JWS_EXTENSION ".jws"
+
+#define AXIS2_SVCTAG "service"
+#define AXIS2_CONFIG "axisconfig"
+
+/* for serviemetadat */
+#define AXIS2_STYLENAME "style"
+#define AXIS2_CONTEXTPATHNAME "contextPath"
+
+/* for parameters */
+#define AXIS2_ATTNAME "name"
+#define AXIS2_ATTLOCKED "locked"
+#define AXIS2_TYPE "type"
+
+/* for operatiins */
+#define AXIS2_ATQNAME "name"
+#define AXIS2_ATUSE "use"
+#define AXIS2_MEP "mep"
+
+/* for handlers */
+#define AXIS2_REF "ref"
+#define AXIS2_CLASSNAME "class"
+#define AXIS2_BEFORE "before"
+#define AXIS2_AFTER "after"
+#define AXIS2_PHASE "phase"
+#define AXIS2_PHASEFIRST "phaseFirst"
+#define AXIS2_PHASELAST "phaseLast"
+#define AXIS2_ORDER "order"  /* to resolve the order tag */
+#define AXIS2_DESCRIPTION "description"
+
+#define AXIS2_TRANSPORTSTAG "transports"
+#define AXIS2_TRANSPORTTAG "transport"
+#define AXIS2_TRANSPORTSENDER "transportSender"
+#define AXIS2_TRANSPORTRECEIVER "transportReceiver"
+
+#define AXIS2_MESSAGERECEIVER "messageReceiver"
+
+
+#define AXIS2_HOTDEPLOYMENT "hotdeployment"
+#define AXIS2_HOTUPDATE "hotupdate"
+#define AXIS2_EXTRACTSVCARCHIVE "extractServiceArchive"
+#define AXIS2_DISPATCH_ORDER "dispatchOrder"
+#define AXIS2_DISPATCHER "dispatcher"
+
+#define AXIS2_STORAGE "axisStorage"
+
+/* element in a services.xml */
+#define AXIS2_SVC_ELEMENT "service"
+#define AXIS2_SVC_GROUP_ELEMENT "serviceGroup"
+	
+/*********************************** Constants*********************************/	
+	
+	
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AXIS2_DEPLOYMENT_H */

Added: webservices/axis2/trunk/c/modules/core/deployment/src/desc_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/src/desc_builder.c?rev=358697&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/src/desc_builder.c (added)
+++ webservices/axis2/trunk/c/modules/core/deployment/src/desc_builder.c Thu Dec 22 20:09:59 2005
@@ -0,0 +1,819 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#include <axis2_desc_builder.h>
+#include <string.h>
+#include <axis2_class_loader.h>
+
+/** 
+ * @brief
+ * To do the common tasks for all Builder
+ */ 
+typedef struct axis2_desc_builder_impl
+{
+	axis2_desc_builder_t desc_builder;
+    
+    axis2_char_t *file_name;
+    struct axis2_dep_engine *engine;
+    	
+} axis2_desc_builder_impl_t;
+
+#define AXIS2_INTF_TO_IMPL(desc_builder) \
+    ((axis2_desc_builder_impl_t *) desc_builder)
+
+/************************* Function prototypes ********************************/
+
+axis2_status_t AXIS2_CALL 
+axis2_desc_builder_free (axis2_desc_builder_t *desc_builder, 
+                            axis2_env_t **env);
+
+struct axis2_om_node *AXIS2_CALL
+axis2_build_OM(axis2_desc_builder_t *desc_builder,
+                axis2_env_t **env);
+
+
+struct axis2_flow *AXIS2_CALL
+axis2_desc_builder_process_flow(axis2_desc_builder_t *desc_builder,
+                                axis2_env_t **env,
+                                struct axis2_om_element *flow_element,
+                                axis2_param_container_t *parent,
+                                axis2_om_node_t *node);
+
+struct axis2_handler_desc *AXIS2_CALL
+axis2_desc_builder_process_handler(axis2_desc_builder_t *desc_builder,
+                                    axis2_env_t **env,
+                                    axis2_om_node_t *handler_element,
+                                    axis2_param_container_t *parent);
+
+
+axis2_status_t AXIS2_CALL
+axis2_desc_builder_process_params(axis2_desc_builder_t *desc_builder,
+                                axis2_env_t **env,
+                                axis2_om_children_qname_iterator_t *params,
+                                axis2_param_container_t *param_container,
+                                axis2_param_container_t *parent );
+
+
+axis2_status_t AXIS2_CALL
+axis2_desc_builder_process_op_module_refs(axis2_desc_builder_t *desc_builder,
+                          axis2_env_t **env,
+                          axis2_om_children_qname_iterator_t *module_refs, 
+                          struct axis2_op *op);
+                              
+struct axis2_msg_recv *AXIS2_CALL
+axis2_desc_builder_load_msg_recv(axis2_desc_builder_t *desc_builder,
+                                    axis2_env_t **env,
+                                    axis2_om_element_t *recv_element);
+
+struct axis2_msg_recv *AXIS2_CALL
+axis2_desc_builder_load_default_msg_recv(axis2_desc_builder_t *desc_builder,
+                                            axis2_env_t **env);
+
+
+axis2_char_t *AXIS2_CALL
+axis2_desc_builder_get_short_file_name(axis2_desc_builder_t *desc_builder,
+                                        axis2_env_t **env,
+                                        axis2_char_t *file_name);
+
+
+axis2_char_t *AXIS2_CALL
+axis2_desc_builder_get_value(axis2_desc_builder_t *desc_builder,
+                                axis2_env_t **env,
+                                axis2_char_t *in);
+
+                                
+/************************** End of function prototypes ************************/
+
+axis2_desc_builder_t * AXIS2_CALL 
+axis2_desc_builder_create_with_input_stream_and_dep_engine (
+                                        axis2_env_t **env, 
+                                        axis2_char_t *file_name, 
+                                        struct axis2_dep_engine *engine)
+{
+    axis2_desc_builder_impl_t *desc_builder_impl = NULL;
+    
+	AXIS2_ENV_CHECK(env, NULL);
+	
+	desc_builder_impl = (axis2_desc_builder_impl_t *) AXIS2_MALLOC((*env)->
+        allocator, sizeof(axis2_desc_builder_impl_t));
+	
+	
+	if(NULL == desc_builder_impl)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); 
+        return NULL;
+    }
+    
+    desc_builder_impl->desc_builder.ops = NULL;
+    
+	desc_builder_impl->desc_builder.ops = 
+		AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_desc_builder_ops_t));
+	if(NULL == desc_builder_impl->desc_builder.ops)
+    {
+        axis2_desc_builder_free(&(desc_builder_impl->desc_builder), env);
+		AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    
+	desc_builder_impl->desc_builder.ops->free =  axis2_desc_builder_free;
+    desc_builder_impl->desc_builder.ops->build_OM = axis2_build_OM;
+    desc_builder_impl->desc_builder.ops->process_flow = 
+            axis2_desc_builder_process_flow;
+    desc_builder_impl->desc_builder.ops->process_handler = 
+            axis2_desc_builder_process_handler;
+    desc_builder_impl->desc_builder.ops->process_params = 
+            axis2_desc_builder_process_params;
+    desc_builder_impl->desc_builder.ops->process_op_module_refs = 
+            axis2_desc_builder_process_op_module_refs;
+    desc_builder_impl->desc_builder.ops->load_msg_recv = 
+            axis2_desc_builder_load_msg_recv;
+    desc_builder_impl->desc_builder.ops->load_default_msg_recv = 
+            axis2_desc_builder_load_default_msg_recv;
+    desc_builder_impl->desc_builder.ops->get_short_file_name = 
+            axis2_desc_builder_get_short_file_name;
+    desc_builder_impl->desc_builder.ops->get_value = 
+            axis2_desc_builder_get_value;  
+	
+	return &(desc_builder_impl->desc_builder);
+}
+
+/***************************Function implementation****************************/
+
+axis2_status_t AXIS2_CALL 
+axis2_desc_builder_free (axis2_desc_builder_t *desc_builder, 
+                            axis2_env_t **env)
+{
+    axis2_desc_builder_impl_t *feature_impl = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(desc_builder, env, AXIS2_FAILURE);
+    
+    feature_impl = AXIS2_INTF_TO_IMPL(desc_builder);
+    
+	if(NULL != desc_builder->ops)
+        AXIS2_FREE((*env)->allocator, desc_builder->ops);
+    
+    AXIS2_FREE((*env)->allocator, feature_impl);
+    feature_impl = NULL;
+    
+	return AXIS2_SUCCESS;
+}
+
+struct axis2_om_node *AXIS2_CALL
+axis2_build_OM(axis2_desc_builder_t *desc_builder,
+                axis2_env_t **env) 
+{
+    struct axis2_desc_builder_impl *builder_impl = NULL;
+    struct axis2_om_stax_builder *builder = NULL;
+    struct axis2_xml_reader *reader = NULL;
+    struct axis2_om_document *document = NULL;
+    struct axis2_om_node *root = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(desc_builder, env, NULL);
+    
+    builder_impl = AXIS2_INTF_TO_IMPL(desc_builder);
+    
+    if(!builder_impl->file_name)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_STATE_DESC_BUILDER,
+            AXIS2_FAILURE);
+        return NULL;
+    }
+    /** create pull parser */
+    reader = axis2_xml_reader_create_for_file(env, builder_impl->file_name,
+        NULL);
+
+    if(!reader)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_CREATING_XML_STREAM_READER,
+            AXIS2_FAILURE)
+        return NULL;
+    }
+    
+    /** create axis2_om_stax_builder by parsing pull_parser struct */
+    builder = axis2_om_stax_builder_create (env, reader);
+
+    if(!builder)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_CREATING_XML_STREAM_READER,
+            AXIS2_FAILURE)
+        return NULL;
+    }
+    /**
+        create an om document
+        document is the container of om model created using builder
+    */
+    document = axis2_om_document_create (env, NULL, builder);
+    /**
+        get root element , building starts hear 
+     */
+    root = AXIS2_OM_DOCUMENT_GET_ROOT_ELEMENT (document, env);
+    return root;
+}
+
+struct axis2_flow *AXIS2_CALL
+axis2_desc_builder_process_flow(axis2_desc_builder_t *desc_builder,
+                                axis2_env_t **env,
+                                axis2_om_element_t *flow_element,
+                                axis2_param_container_t *parent,
+                                axis2_om_node_t *flow_node)
+{
+    struct axis2_flow *flow = NULL;
+    axis2_om_children_qname_iterator_t *handlers = NULL;
+    axis2_qname_t *child = NULL;
+        
+    AXIS2_FUNC_PARAM_CHECK(desc_builder, env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, parent, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, flow_node, NULL);
+        
+    flow = axis2_flow_create(env);
+    if(!flow)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    
+    if(NULL == flow_element)
+    {
+        return flow;
+    }
+    
+    child = axis2_qname_create(env, AXIS2_HANDLERST, NULL, NULL); 
+    handlers = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(flow_element, env, 
+        child, flow_node);
+    while(AXIS2_TRUE == AXIS2_OM_CHILDREN_QNAME_ITERATOR_HAS_NEXT(handlers ,env))
+    {
+        axis2_om_node_t *handler_node = NULL;
+        struct axis2_handler_desc *handler = NULL;
+        axis2_status_t status = AXIS2_FAILURE;
+            
+        handler_node = (axis2_om_node_t *)
+            AXIS2_OM_CHILDREN_QNAME_ITERATOR_NEXT(handlers, env);
+        
+        handler = axis2_desc_builder_process_handler(desc_builder, env, 
+            handler_node, parent);
+        status = AXIS2_FLOW_ADD_HANDLER(flow, env, handler);
+        if(AXIS2_FAILURE == status)
+        {
+            AXIS2_FLOW_FREE(flow, env);
+            return NULL;
+        }
+    }
+    
+    return flow;
+}
+
+struct axis2_handler_desc *AXIS2_CALL
+axis2_desc_builder_process_handler(axis2_desc_builder_t *desc_builder,
+                                    axis2_env_t **env,
+                                    axis2_om_node_t *handler_node,
+                                    struct axis2_param_container *parent)
+{
+    axis2_handler_desc_t *handler = NULL;
+    struct axis2_om_attribute *name_attrib = NULL;
+    axis2_qname_t *attr_qname = NULL;
+    struct axis2_om_attribute *class_attrib = NULL;
+    axis2_qname_t *class_qname = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+    axis2_char_t *attrib_value = NULL;
+    axis2_om_element_t *handler_element = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(desc_builder, env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, handler_element, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, parent, NULL);
+    
+    handler = axis2_handler_desc_create_with_qname(env, NULL);
+    if(!handler)
+    {
+        return NULL;
+    }
+    /* Setting Handler name */
+    attr_qname = axis2_qname_create(env, AXIS2_ATTNAME, NULL, NULL);
+    if(!attr_qname)
+    {
+        AXIS2_HANDLER_DESC_FREE(handler, env);
+        return NULL;
+    }
+    handler_element = AXIS2_OM_NODE_GET_DATA_ELEMENT(handler_node, env);
+    name_attrib = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(handler_element, env, 
+        attr_qname);
+    if(NULL == name_attrib)
+    {
+        AXIS2_HANDLER_DESC_FREE(handler, env);
+        AXIS2_QNAME_FREE(attr_qname, env);
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
+            AXIS2_FAILURE);
+        return NULL;
+    }
+    else
+    {
+        axis2_qname_t *handler_qname = NULL;
+        axis2_char_t *value = NULL;
+        
+        value = AXIS2_OM_ATTRIBUTE_GET_VALUE(name_attrib, env);
+        handler_qname = axis2_qname_create(env, value, NULL, NULL); 
+        if(!handler_qname)
+        {
+            AXIS2_HANDLER_DESC_FREE(handler, env);
+            AXIS2_QNAME_FREE(attr_qname, env);
+            return NULL;
+        }
+        status = AXIS2_HANDLER_DESC_SET_QNAME(handler, env, handler_qname);
+        if(AXIS2_FAILURE == status)
+        {
+            AXIS2_HANDLER_DESC_FREE(handler, env);
+            AXIS2_QNAME_FREE(attr_qname, env);
+            AXIS2_QNAME_FREE(handler_qname, env);
+            return NULL;
+        }  
+        AXIS2_QNAME_FREE(handler_qname, env);        
+    }
+
+    /*Setting Handler Class name */
+    
+    class_qname = axis2_qname_create(env, AXIS2_CLASSNAME, NULL, NULL);
+    class_attrib = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(handler_element, env,
+        class_qname);
+        
+    AXIS2_QNAME_FREE(class_qname, env);
+    
+    if(NULL == class_attrib)
+    {
+        AXIS2_HANDLER_DESC_FREE(handler, env);
+        AXIS2_QNAME_FREE(attr_qname, env);
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
+            AXIS2_FAILURE);
+        return NULL;   
+    }
+    else
+    {   
+        attrib_value = AXIS2_OM_ATTRIBUTE_GET_VALUE(class_attrib, env);
+        status = AXIS2_HANDLER_DESC_SET_CLASS_NAME(handler, env, attrib_value);
+        if(AXIS2_FAILURE == status)
+        {
+            AXIS2_HANDLER_DESC_FREE(handler, env);
+            AXIS2_QNAME_FREE(attr_qname, env);
+            return NULL;
+        }
+    }
+
+    /*processing phase Rules (order) */
+    axis2_om_node_t *order_node = NULL;
+    axis2_om_element_t *order_element = NULL;
+    axis2_qname_t *order_qname = NULL;
+    
+    order_qname = axis2_qname_create(env, AXIS2_ORDER, NULL, NULL);
+    order_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(handler_element,
+        env, order_qname, handler_node, &order_node);
+    if(NULL == (&order_element) || NULL == order_node)
+    {
+        AXIS2_HANDLER_DESC_FREE(handler, env);
+        AXIS2_QNAME_FREE(attr_qname, env);
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_HANDLER_STATE, 
+            AXIS2_FAILURE);
+        return NULL;
+    }
+    else
+    {
+        axis2_hash_t *order_itr = NULL;
+        axis2_om_children_qname_iterator_t *params = NULL;
+        axis2_qname_t *param_qname = NULL;
+        axis2_hash_index_t *index_i = NULL;
+        
+        order_itr = AXIS2_OM_ELEMENT_GET_ALL_ATTRIBUTES(order_element, env);
+        if(!order_itr)
+        {
+            AXIS2_HANDLER_DESC_FREE(handler, env);
+            AXIS2_QNAME_FREE(attr_qname, env);
+            return NULL;
+        }
+        
+        index_i = axis2_hash_first (order_itr, env);
+    
+        while(NULL != index_i)
+        {
+            axis2_om_attribute_t *order_attrib = NULL;
+            axis2_qname_t *qname = NULL;
+            axis2_char_t *name = NULL;
+            axis2_char_t *value = NULL;
+            void *v = NULL;
+
+            axis2_hash_this (index_i, NULL, NULL, &v);
+            order_attrib = (axis2_om_attribute_t *) v;
+            qname = AXIS2_OM_ATTRIBUTE_GET_QNAME(order_attrib, env);
+            name = AXIS2_QNAME_GET_LOCALPART(qname, env);
+            value = AXIS2_OM_ATTRIBUTE_GET_VALUE(order_attrib, env);
+            if(0 == AXIS2_STRCMP(AXIS2_AFTER, name))
+            {
+                struct axis2_phase_rule *phase_rule = NULL;
+                phase_rule = AXIS2_HANDLER_DESC_GET_RULES(handler, env);
+                status = AXIS2_PHASE_RULE_SET_AFTER(phase_rule, env, value);
+                if(AXIS2_FAILURE == status)
+                {
+                    AXIS2_HANDLER_DESC_FREE(handler, env);
+                    AXIS2_QNAME_FREE(attr_qname, env);
+                    return NULL;
+                }
+            }
+            if(0 == AXIS2_STRCMP(AXIS2_BEFORE, name))
+            {
+                struct axis2_phase_rule *phase_rule = NULL;
+                phase_rule = AXIS2_HANDLER_DESC_GET_RULES(handler, env);
+                status = AXIS2_PHASE_RULE_SET_BEFORE(phase_rule, env, value);
+                if(AXIS2_FAILURE == status)
+                {
+                    AXIS2_HANDLER_DESC_FREE(handler, env);
+                    AXIS2_QNAME_FREE(attr_qname, env);
+                    return NULL;
+                }
+            }
+            if(0 == AXIS2_STRCMP(AXIS2_PHASE, name))
+            {
+                struct axis2_phase_rule *phase_rule = NULL;
+                phase_rule = AXIS2_HANDLER_DESC_GET_RULES(handler, env);
+                status = AXIS2_PHASE_RULE_SET_NAME(phase_rule, env, value);
+                if(AXIS2_FAILURE == status)
+                {
+                    AXIS2_HANDLER_DESC_FREE(handler, env);
+                    AXIS2_QNAME_FREE(attr_qname, env);
+                    return NULL;
+                }
+            }
+            if(0 == AXIS2_STRCMP(AXIS2_PHASEFIRST, name))
+            {
+                axis2_char_t *bool_val = axis2_desc_builder_get_value(
+                    desc_builder, env, value);
+                
+                if(0 == AXIS2_STRCMP(bool_val, "true"))
+                {
+                    struct axis2_phase_rule *phase_rule = NULL;
+                    phase_rule = AXIS2_HANDLER_DESC_GET_RULES(handler, env);
+                    status = AXIS2_PHASE_RULE_SET_PHASE_FIRST(phase_rule, env,
+                        AXIS2_TRUE);
+                    if(AXIS2_FAILURE == status)
+                    {
+                        AXIS2_HANDLER_DESC_FREE(handler, env);
+                        AXIS2_QNAME_FREE(attr_qname, env);
+                        AXIS2_FREE((*env)->allocator, bool_val);
+                        return NULL;
+                    }
+                }
+                else if(0 == AXIS2_STRCMP(bool_val, "false"))
+                {
+                    struct axis2_phase_rule *phase_rule = NULL;
+                    phase_rule = AXIS2_HANDLER_DESC_GET_RULES(handler, env);
+                    status = AXIS2_PHASE_RULE_SET_PHASE_FIRST(phase_rule, env,
+                        AXIS2_FALSE);
+                    if(AXIS2_FAILURE == status)
+                    {
+                        AXIS2_HANDLER_DESC_FREE(handler, env);
+                        AXIS2_QNAME_FREE(attr_qname, env);
+                        AXIS2_FREE((*env)->allocator, bool_val);
+                        return NULL;
+                    }
+                }
+                AXIS2_FREE((*env)->allocator, bool_val);
+            }
+            index_i = axis2_hash_next (env, index_i);
+        }
+        
+        param_qname = axis2_qname_create(env, AXIS2_PARAMETERST, NULL, NULL);
+        params = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(handler_element,
+            env, param_qname, handler_node);
+        status = axis2_desc_builder_process_params(desc_builder, env, params, 
+            handler->param_container, parent);
+        if(AXIS2_FAILURE == status)
+        {
+            AXIS2_HANDLER_DESC_FREE(handler, env);
+            AXIS2_QNAME_FREE(attr_qname, env);
+            AXIS2_QNAME_FREE(param_qname, env);
+            return NULL;   
+        }      
+    }
+    
+    status = AXIS2_HANDLER_DESC_SET_PARENT(handler, env, parent);
+    if(AXIS2_FAILURE == status)
+    {
+        AXIS2_HANDLER_DESC_FREE(handler, env);
+        AXIS2_QNAME_FREE(attr_qname, env);
+        return NULL; 
+    }
+    
+    return handler;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_desc_builder_process_params(axis2_desc_builder_t *desc_builder,
+                                axis2_env_t **env,
+                                axis2_om_children_qname_iterator_t *params,
+                                axis2_param_container_t *param_container,
+                                axis2_param_container_t *parent )
+{
+    axis2_status_t status = AXIS2_FAILURE;
+        
+    AXIS2_FUNC_PARAM_CHECK(desc_builder, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, params, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, param_container, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, parent, AXIS2_FAILURE);
+    
+    while(AXIS2_FALSE != AXIS2_OM_CHILDREN_QNAME_ITERATOR_HAS_NEXT(params, env))
+    {
+        axis2_om_element_t *param_element = NULL;
+        axis2_om_node_t *param_node = NULL;
+        axis2_om_element_t *para_value = NULL;
+        axis2_om_node_t *para_node = NULL;
+        axis2_param_t *param = NULL;
+        axis2_param_t *parent_para = NULL;
+        axis2_om_attribute_t *para_name = NULL;
+        axis2_om_attribute_t *para_locked = NULL;  
+        axis2_qname_t *att_locked = NULL;
+        axis2_qname_t *att_qname = NULL;        
+        
+        /* this is to check whether some one has locked the parmter at the top 
+         * level
+         */
+        param_node = (axis2_om_node_t *)
+            AXIS2_OM_CHILDREN_QNAME_ITERATOR_NEXT(params, env);
+        param = axis2_param_create(env, NULL, NULL);
+        /* setting param_element */
+        status = AXIS2_PARAM_SET_ELEMENT(param, env, param_node);
+        if(AXIS2_FAILURE == status)
+        {
+            AXIS2_PARAM_FREE(param, env);
+            return status;
+        }
+        /* setting paramter Name */
+        att_qname = axis2_qname_create(env, AXIS2_ATTNAME, NULL, NULL);
+        para_name = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(param_element, env, 
+            att_qname);
+        AXIS2_QNAME_FREE(att_qname, env);
+        if(!para_name)
+        {
+            AXIS2_PARAM_FREE(param, env);
+            return AXIS2_FAILURE;
+        }
+        status = AXIS2_PARAM_SET_NAME(param, env, AXIS2_OM_ATTRIBUTE_GET_VALUE(
+            para_name, env));
+        if(AXIS2_FAILURE == status)
+        {
+            AXIS2_PARAM_FREE(param, env);
+            return AXIS2_FAILURE;
+        }
+        /* setting paramter Value (the chiled elemnt of the paramter) */
+        para_value = AXIS2_OM_ELEMENT_GET_FIRST_ELEMENT(param_element, env,
+            param_node, &para_node);
+        if(NULL != para_value)
+        {
+            status = AXIS2_PARAM_SET_VALUE(param, env, param_element);
+            if(AXIS2_FAILURE == status)
+            {
+                AXIS2_PARAM_FREE(param, env);
+                return AXIS2_FAILURE;
+            }
+            AXIS2_PARAM_SET_PARAM_TYPE(param, env, AXIS2_DOM_PARAM);
+        }
+        else
+        {
+            axis2_char_t *para_test_value = AXIS2_OM_ELEMENT_GET_TEXT(
+                param_element, env, param_node);
+            status = AXIS2_PARAM_SET_VALUE(param, env, para_test_value);
+            if(AXIS2_FAILURE == status)
+            {
+                AXIS2_PARAM_FREE(param, env);
+                return AXIS2_FAILURE;
+            }
+            AXIS2_PARAM_SET_PARAM_TYPE(param, env, AXIS2_TEXT_PARAM);
+        }
+        /* setting locking attrib */
+        att_locked = axis2_qname_create(env, AXIS2_ATTLOCKED, NULL, NULL);
+        para_locked = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(param_element, env, 
+            att_locked);
+        if(NULL != parent)
+        {
+            parent_para = AXIS2_PARAM_CONTAINER_GET_PARAM(parent, env, 
+                AXIS2_PARAM_GET_NAME(param, env));
+            
+        }
+        if(NULL != para_locked)
+        {
+            axis2_char_t *locked_value = NULL;
+            
+            locked_value = AXIS2_OM_ATTRIBUTE_GET_VALUE(para_locked, env);
+            if(0 == AXIS2_STRCMP("true", locked_value))
+            {
+                /*if the parameter is locked at some levle paramer value replace
+                 * by that   
+                 */
+                if(NULL != parent && AXIS2_TRUE == 
+                        AXIS2_PARAM_CONTAINER_IS_PARAM_LOCKED(parent, env, 
+                            AXIS2_PARAM_GET_NAME(param, env)))
+                {
+                    AXIS2_PARAM_FREE(param, env);
+                    AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_CONF_NOT_FOUND,
+                        AXIS2_FAILURE);
+                    return AXIS2_FAILURE;
+                }
+                else
+                {
+                    AXIS2_PARAM_SET_LOCKED(param, env, AXIS2_TRUE);
+                }
+            }
+            else
+            {
+                AXIS2_PARAM_SET_LOCKED(param, env, AXIS2_FALSE);
+            }
+        }
+        if(NULL != parent)
+        {
+            if(NULL != parent_para || AXIS2_FALSE == 
+                    AXIS2_PARAM_CONTAINER_IS_PARAM_LOCKED(parent, env, 
+                        AXIS2_PARAM_GET_NAME(param, env)))
+            {
+                status = AXIS2_PARAM_CONTAINER_ADD_PARAM(param_container, env, 
+                    param);
+            }
+        }
+        else
+        {
+            status = AXIS2_PARAM_CONTAINER_ADD_PARAM(param_container, env, 
+                param);   
+        }   
+    }
+    return AXIS2_SUCCESS;
+}
+
+
+axis2_status_t AXIS2_CALL
+axis2_desc_builder_process_op_module_refs(axis2_desc_builder_t *desc_builder,
+                          axis2_env_t **env,
+                          struct axis2_om_children_qname_iterator *module_refs, 
+                          struct axis2_op *op)
+{
+    axis2_desc_builder_impl_t *desc_builder_impl = NULL;
+    struct axis2_om_element *moduleref = NULL;
+    struct axis2_om_attribute *module_ref_attrib = NULL;
+    axis2_qname_t *ref = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+        
+    AXIS2_FUNC_PARAM_CHECK(desc_builder, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, module_refs, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, op, AXIS2_FAILURE);
+    
+    desc_builder_impl = AXIS2_INTF_TO_IMPL(desc_builder);
+    
+    while(AXIS2_TRUE == AXIS2_OM_CHILDREN_QNAME_ITERATOR_HAS_NEXT(module_refs,
+        env))
+    {
+        moduleref = (struct axis2_om_element *)
+            AXIS2_OM_CHILDREN_QNAME_ITERATOR_NEXT(module_refs, env);
+        ref = axis2_qname_create(env, AXIS2_REF, NULL, NULL);
+        module_ref_attrib = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(moduleref, env, ref);
+        if(NULL != module_ref_attrib)
+        {
+            axis2_char_t *ref_name = NULL;
+            axis2_qname_t *ref_qname = NULL;
+            
+            ref_name = AXIS2_OM_ATTRIBUTE_GET_VALUE(module_ref_attrib, env);
+            ref_qname = axis2_qname_create(env, ref_name, NULL, NULL);
+            if( NULL == AXIS2_DEP_ENGINE_GET_MODULE(desc_builder_impl->engine, env,
+                ref_qname))
+            {
+                AXIS2_QNAME_FREE(ref_qname, env);
+                AXIS2_QNAME_FREE(ref, env);
+                AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_MODULE_NOT_FOUND, 
+                    AXIS2_FAILURE);
+                return AXIS2_FAILURE;
+            }
+            else
+            {
+                status = AXIS2_OP_ADD_MODULE(op, env, ref_qname);
+                if(AXIS2_FAILURE == status)
+                {
+                    AXIS2_QNAME_FREE(ref_qname, env);
+                    AXIS2_QNAME_FREE(ref, env);
+                    AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_MODULE_NOT_FOUND, 
+                        AXIS2_FAILURE);
+                    return AXIS2_FAILURE;
+                }
+            }  
+        }
+    }
+    return AXIS2_SUCCESS;
+}
+
+struct axis2_msg_recv *AXIS2_CALL
+axis2_desc_builder_load_msg_recv(axis2_desc_builder_t *desc_builder,
+                                    axis2_env_t **env,
+                                    struct axis2_om_element *recv_element)
+{
+    struct axis2_om_attribute *recv_name = NULL;
+    axis2_char_t *class_name = NULL;
+    axis2_msg_recv_t *msg_recv = NULL;
+    axis2_qname_t *class_qname = NULL;
+    axis2_param_t *impl_info_param = NULL;
+    struct axis2_dll_desc *dll_desc = NULL;
+     
+    class_qname = axis2_qname_create(env, AXIS2_CLASSNAME, NULL, NULL);
+    recv_name = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(recv_element, env, class_qname);
+    class_name = AXIS2_OM_ATTRIBUTE_GET_VALUE(recv_name, env);
+    dll_desc = axis2_dll_desc_create(env);
+    AXIS2_DLL_DESC_SET_NAME(dll_desc, env, class_name);
+    AXIS2_DLL_DESC_SET_TYPE(dll_desc, env, AXIS2_MSG_RECV_DLL);
+    axis2_class_loader_init(env);
+    impl_info_param = axis2_param_create(env, NULL, NULL);
+    
+    AXIS2_PARAM_SET_VALUE(impl_info_param, env, dll_desc); 
+    msg_recv = (axis2_msg_recv_t *) axis2_class_loader_create_dll(env, 
+        impl_info_param);
+    
+    return msg_recv;
+}
+
+struct axis2_msg_recv *AXIS2_CALL
+axis2_desc_builder_load_default_msg_recv(axis2_desc_builder_t *desc_builder,
+                                            axis2_env_t **env)
+{
+    axis2_char_t *default_msg_recv = "axis2_raw_xml_in_out_msg_recv";
+    axis2_msg_recv_t *msg_recv = NULL;
+    axis2_param_t *impl_info_param = NULL;
+    struct axis2_dll_desc *dll_desc = NULL;
+    
+    /**
+     * Setting default Message Recive as Message Receiver
+     */
+    dll_desc = axis2_dll_desc_create(env);
+    AXIS2_DLL_DESC_SET_NAME(dll_desc, env, default_msg_recv);
+    AXIS2_DLL_DESC_SET_TYPE(dll_desc, env, AXIS2_MSG_RECV_DLL);
+    axis2_class_loader_init(env);
+    impl_info_param = axis2_param_create(env, NULL, NULL);
+    
+    AXIS2_PARAM_SET_VALUE(impl_info_param, env, dll_desc); 
+    msg_recv = (axis2_msg_recv_t *) axis2_class_loader_create_dll(env, 
+        impl_info_param);
+    
+    return msg_recv;
+}
+
+axis2_char_t *AXIS2_CALL
+axis2_desc_builder_get_short_file_name(axis2_desc_builder_t *desc_builder,
+                                        axis2_env_t **env,
+                                        axis2_char_t *file_name) 
+{
+    axis2_char_t *separator = NULL;
+    axis2_char_t *value = NULL;
+    axis2_char_t *file_name_l = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(desc_builder, env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, file_name, NULL);
+    
+    file_name_l = AXIS2_STRDUP(file_name, env);
+    if(!file_name_l)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    while(NULL == value)
+    {
+        value = strpbrk(file_name_l, separator);
+    }
+    value[0] = AXIS2_EOLN;
+    value = file_name_l;
+    
+    return value;
+}
+
+axis2_char_t *AXIS2_CALL
+axis2_desc_builder_get_value(axis2_desc_builder_t *desc_builder,
+                                axis2_env_t **env,
+                                axis2_char_t *in) 
+{
+    axis2_char_t *separator = ":";
+    axis2_char_t *value = NULL;
+    axis2_char_t *in_l = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(desc_builder, env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, in, NULL);
+    
+    in_l = AXIS2_STRDUP(in, env);
+    if(!in_l)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    value = strpbrk(in_l, separator);
+    value = value + 1;
+    
+    return value;
+}

Added: webservices/axis2/trunk/c/modules/core/deployment/src/repos_listener.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/src/repos_listener.c?rev=358697&view=auto
==============================================================================
    (empty)

Modified: webservices/axis2/trunk/c/modules/core/description/src/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/Makefile.am?rev=358697&r1=358696&r2=358697&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/Makefile.am Thu Dec 22 20:09:59 2005
@@ -14,11 +14,14 @@
                             transport_in_desc.c \
                             transport_out_desc.c
 
-libaxis2_description_la_LIBADD = $(LDFLAGS)
+libaxis2_description_la_LIBADD =
+
 INCLUDES = -I${CUTEST_HOME}/include -I$(top_builddir)/include \
             -I$(top_builddir)/modules/xml/parser \
             -I$(top_builddir)/modules/util/src \
             -I$(top_builddir)/modules/wsdl/src \
             -I$(top_builddir)/modules/core/transport \
+            -I$(top_builddir)/modules/core/deployment \
             -I$(top_builddir)/modules/core/description \
-            -I$(top_builddir)/modules/core/addr
+            -I$(top_builddir)/modules/core/addr \
+            -I$(top_builddir)/modules/platforms