[
https://issues.jboss.org/browse/AS7-5936?page=com.atlassian.jira.plugin.s...
]
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