[jboss-jira] [JBoss JIRA] (AS7-5936) jboss-ejb-iiop_1_0.xsd does not match Java implementation
david.boeren (JIRA)
jira-events at lists.jboss.org
Tue Nov 13 16:05:18 EST 2012
[ https://issues.jboss.org/browse/AS7-5936?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
david.boeren updated AS7-5936:
------------------------------
Affects Version/s: 7.1.3.Final (EAP)
Description:
There's a mismatch between the schema file in
docs/schema/jboss-ejb-iiop_1_0.xsd and the java classes that implement
the parsing of this schema. As is usual in such cases, it's probably
the documentation that is wrong.
In the xsd file the children are described as attributes:
<xs:complexType name="iorTransportConfigType">
<xs:annotation>
<xs:documentation>
<![CDATA[
The iorTransportConfigType specifies attributes that can
be used to configure the transport requirements of
an IIOP enabled EJB3 bean.
* integrity: indicates if the server (target) supports
integrity protected messages. The valid values are
NONE, SUPPORTED or REQUIRED.
* confidentiality: indicates if the server (target)
supports privacy protected messages. The values are
NONE, SUPPORTED or REQUIRED.
* detect-misordering: indicates if the server (target)
supports detection of message sequence errors. The
values are NONE, SUPPORTED or REQUIRED.
* detect-replay: indicates if the server (target) supports
detection of message replay attempts. The values
are NONE, SUPPORTED or REQUIRED.
* establish-trust-in-client: indicates if the target is
capable of authenticating a client. The values are
NONE, SUPPORTED or REQUIRED.
* establish-trust-in-target: indicates if the target is
capable of authenticating to a client. The values
are NONE or SUPPORTED.
]]>
</xs:documentation>
</xs:annotation>
<xs:attribute name="integrity" type="xs:string" use="required"
default="NONE"/>
<xs:attribute name="confidentiality" type="xs:string"
use="required" default="NONE"/>
<xs:attribute name="detect-misordering" type="xs:string"
use="optional" default="NONE"/>
<xs:attribute name="detect-replay" type="xs:string"
use="optional" default="NONE"/>
<xs:attribute name="establish-trust-in-client" type="xs:string"
use="required" default="NONE"/>
<xs:attribute name="establish-trust-in-target" type="xs:string"
use="required" default="NONE"/>
</xs:complexType>
However, in the class
(org.jboss.metadata.ejb.parser.jboss.ejb3.IIOPMetaDataParser) it
requires no attributes and expects to see these same children as elements:
protected IORTransportConfigMetaData
processTransportConfig(XMLStreamReader reader, final PropertyReplacer
propertyReplacer) throws XMLStreamException {
// the transport-config element doesn't have attributes.
requireNoAttributes(reader);
EnumSet<Element> requiredElements = EnumSet.of(Element.INTEGRITY,
Element.CONFIDENTIALITY,
Element.ESTABLISH_TRUST_IN_CLIENT, Element.ESTABLISH_TRUST_IN_TARGET);
IORTransportConfigMetaData transportConfig = new
IORTransportConfigMetaData();
// process the transport config elements.
while (reader.hasNext() && reader.nextTag() != END_ELEMENT) {
Element element = Element.forName(reader.getLocalName());
// set the element text in the transport config metadata.
switch (element) {
case INTEGRITY: {
requireNoAttributes(reader);
transportConfig.setIntegrity(getElementText(reader, propertyReplacer));
break;
}
case CONFIDENTIALITY: {
requireNoAttributes(reader);
transportConfig.setConfidentiality(getElementText(reader,
propertyReplacer));
break;
}
case DETECT_MISORDERING: {
requireNoAttributes(reader);
transportConfig.setDetectMisordering(getElementText(reader,
propertyReplacer));
break;
}
case DETECT_REPLAY: {
requireNoAttributes(reader);
transportConfig.setDetectReplay(getElementText(reader, propertyReplacer));
break;
}
case ESTABLISH_TRUST_IN_CLIENT: {
requireNoAttributes(reader);
transportConfig.setEstablishTrustInClient(getElementText(reader,
propertyReplacer));
break;
}
case ESTABLISH_TRUST_IN_TARGET: {
requireNoAttributes(reader);
transportConfig.setEstablishTrustInTarget(getElementText(reader,
propertyReplacer));
break;
}
default: {
throw unexpectedElement(reader);
}
}
requiredElements.remove(element);
}
// throw an exception if a required element wasn't found.
if (!requiredElements.isEmpty()) {
throw missingRequiredElement(reader, requiredElements);
}
return transportConfig;
}
Component/s: Documentation
> jboss-ejb-iiop_1_0.xsd does not match Java implementation
> ---------------------------------------------------------
>
> Key: AS7-5936
> URL: https://issues.jboss.org/browse/AS7-5936
> Project: Application Server 7
> Issue Type: Task
> Components: Documentation
> Affects Versions: 7.1.3.Final (EAP)
> Reporter: david.boeren
> Priority: Minor
>
> There's a mismatch between the schema file in
> docs/schema/jboss-ejb-iiop_1_0.xsd and the java classes that implement
> the parsing of this schema. As is usual in such cases, it's probably
> the documentation that is wrong.
> In the xsd file the children are described as attributes:
> <xs:complexType name="iorTransportConfigType">
> <xs:annotation>
> <xs:documentation>
> <![CDATA[
> The iorTransportConfigType specifies attributes that can
> be used to configure the transport requirements of
> an IIOP enabled EJB3 bean.
> * integrity: indicates if the server (target) supports
> integrity protected messages. The valid values are
> NONE, SUPPORTED or REQUIRED.
> * confidentiality: indicates if the server (target)
> supports privacy protected messages. The values are
> NONE, SUPPORTED or REQUIRED.
> * detect-misordering: indicates if the server (target)
> supports detection of message sequence errors. The
> values are NONE, SUPPORTED or REQUIRED.
> * detect-replay: indicates if the server (target) supports
> detection of message replay attempts. The values
> are NONE, SUPPORTED or REQUIRED.
> * establish-trust-in-client: indicates if the target is
> capable of authenticating a client. The values are
> NONE, SUPPORTED or REQUIRED.
> * establish-trust-in-target: indicates if the target is
> capable of authenticating to a client. The values
> are NONE or SUPPORTED.
> ]]>
> </xs:documentation>
> </xs:annotation>
> <xs:attribute name="integrity" type="xs:string" use="required"
> default="NONE"/>
> <xs:attribute name="confidentiality" type="xs:string"
> use="required" default="NONE"/>
> <xs:attribute name="detect-misordering" type="xs:string"
> use="optional" default="NONE"/>
> <xs:attribute name="detect-replay" type="xs:string"
> use="optional" default="NONE"/>
> <xs:attribute name="establish-trust-in-client" type="xs:string"
> use="required" default="NONE"/>
> <xs:attribute name="establish-trust-in-target" type="xs:string"
> use="required" default="NONE"/>
> </xs:complexType>
> However, in the class
> (org.jboss.metadata.ejb.parser.jboss.ejb3.IIOPMetaDataParser) it
> requires no attributes and expects to see these same children as elements:
> protected IORTransportConfigMetaData
> processTransportConfig(XMLStreamReader reader, final PropertyReplacer
> propertyReplacer) throws XMLStreamException {
> // the transport-config element doesn't have attributes.
> requireNoAttributes(reader);
> EnumSet<Element> requiredElements = EnumSet.of(Element.INTEGRITY,
> Element.CONFIDENTIALITY,
> Element.ESTABLISH_TRUST_IN_CLIENT, Element.ESTABLISH_TRUST_IN_TARGET);
> IORTransportConfigMetaData transportConfig = new
> IORTransportConfigMetaData();
> // process the transport config elements.
> while (reader.hasNext() && reader.nextTag() != END_ELEMENT) {
> Element element = Element.forName(reader.getLocalName());
> // set the element text in the transport config metadata.
> switch (element) {
> case INTEGRITY: {
> requireNoAttributes(reader);
> transportConfig.setIntegrity(getElementText(reader, propertyReplacer));
> break;
> }
> case CONFIDENTIALITY: {
> requireNoAttributes(reader);
> transportConfig.setConfidentiality(getElementText(reader,
> propertyReplacer));
> break;
> }
> case DETECT_MISORDERING: {
> requireNoAttributes(reader);
> transportConfig.setDetectMisordering(getElementText(reader,
> propertyReplacer));
> break;
> }
> case DETECT_REPLAY: {
> requireNoAttributes(reader);
> transportConfig.setDetectReplay(getElementText(reader, propertyReplacer));
> break;
> }
> case ESTABLISH_TRUST_IN_CLIENT: {
> requireNoAttributes(reader);
> transportConfig.setEstablishTrustInClient(getElementText(reader,
> propertyReplacer));
> break;
> }
> case ESTABLISH_TRUST_IN_TARGET: {
> requireNoAttributes(reader);
> transportConfig.setEstablishTrustInTarget(getElementText(reader,
> propertyReplacer));
> break;
> }
> default: {
> throw unexpectedElement(reader);
> }
> }
> requiredElements.remove(element);
> }
> // throw an exception if a required element wasn't found.
> if (!requiredElements.isEmpty()) {
> throw missingRequiredElement(reader, requiredElements);
> }
> return transportConfig;
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list