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, ¶_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