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]