Adding configurable parameter for Metadata Exchange ---------------------------------------------------
Key: AXIS2-2281 URL: https://issues.apache.org/jira/browse/AXIS2-2281 Project: Axis 2.0 (Axis2) Issue Type: Improvement Components: modules Affects Versions: 1.2 Reporter: Gee Chia Fix For: 1.2 This JIRA is to add configrable parameter for Metadata Exchange function. Following are the two configuration requirements that currently identified: a. Once "metadataExchange" module is engaged globally in axis2.xml, we need a way to disable GetMetadata request for a service. b. When a GetMetadata request is issued, the /mex:Metadata element returns multiple /mex:MetadataSection units. A MetadatSection could be either the embedded XML (inline), an endpoint reference to a Metadata Resource i.e. MetadataReference, or a URL i.e. Location element. The WS-MEX spec does not define what output forms: inline, Location or MetadataReference should be returned for a GetMetadata request. Currently, MexMessageReceiver just default to generating Metadata Sections for all the 3 possible output forms as stated in the spec. We need a way to configure the Metadata Section content to return for a GetMetadata request. For example, if there is large amount of data, large amount of inline xml might not be desirable. The <outputform> allows to configure only GetMetadata response with Metadata Sections of Metadata Reference and Location instead of actual information. Solution implemented: Adding "metadataExchange" element parameter configuration in axis2.xml and services.xml, allows to support the above configuration needs as well as future needs. Following are the configurables items: enable attribute - possible values: "false". This is used to disable MEX support for a service. When disabled, MexDisabledException will be returned to the sender of GetMetadata request. outputform element contains optional "dialect" attribute and required "forms" attribute. possible values for "forms": inline,location,reference.If not configured, default is inline,location, and reference. Note that the outputform only avoided unnessary processing in creating Metadata sections for data format that is not needed. As an example, <parameter name="metadataExchange" locked="false"> <outputform dialect="http://schemas.xmlsoap.org/wsdl/" forms="inline,location" /> <outputform forms="reference,location" /> </parameter> If the above configuration is added to the axis2.xml, this means the GetMetadata response will contain Metadata Sections of actual WSDL data, and URL for the WSDL dialect, and for other dialects such as policy, schema, etc., only Metadata Sections with MetadataReference and Location will be included in the response. The order of precedence for the output form will be similar to the data locator look-up: a. dialect specific at service level i.e. configured in services.xml b. service level i.e. without dialect attribute specified c. dialect specific at global level i,e, configured in axis2.xml d. service level i.e. without dialect attribute specified e. default output forms to all: inline, location, reference Summary of code changes: New class: org.apache.axis2.mex.MexDisabledException Modified classes: MexConstants - adding constants for configurable items refere in "metadataExchange" parameter MexMessageReceiver - Access the parameter axis configuration and service configuration Check if MEX is disabled before processing Call MexUtil.determineOutputForm(..) instead of default to all 3 output forms. MexUtil: Added APIs: determineOutputForm(..), check_MEX_disabled() -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]