frankframework / frank-doc

Frank!Doc
https://frankdoc.frankframework.org
Apache License 2.0
4 stars 5 forks source link

Introduce @ff.reintroduce and @Reintroduce #131

Closed mhdirkse closed 2 years ago

mhdirkse commented 2 years ago

TODO:

mhdirkse commented 2 years ago

This is how the Frank!Doc webapp becomes for page SenderPipe. Inheritance is shown: image

mhdirkse commented 2 years ago

And this is how the XSD will be become for SenderPipe:

  <xs:group name="SenderPipeDeclaredChildGroup">
    <xs:sequence>
      <xs:group ref="MessageLogElementGroup" minOccurs="0" maxOccurs="1" />
      <xs:group ref="InputWrapperElementGroup" minOccurs="0" maxOccurs="1" />
      <xs:group ref="InputValidatorElementGroup" minOccurs="0" maxOccurs="1" />
      <xs:group ref="SenderElementGroup" minOccurs="1" maxOccurs="1" />
      <xs:group ref="ListenerElementGroup_2" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:group>
  <xs:group name="SenderPipeCumulativeChildGroup">
    <xs:sequence>
      <xs:group ref="SenderPipeDeclaredChildGroup" />
      <xs:group ref="OutputValidatorElementGroup" minOccurs="0" maxOccurs="1" />
      <xs:group ref="OutputWrapperElementGroup" minOccurs="0" maxOccurs="1" />
      <xs:group ref="AbstractPipeDeclaredChildGroup" />
    </xs:sequence>
  </xs:group>
mhdirkse commented 2 years ago

To use the @Reintroduce annotation, please merge the following F!F PR: https://github.com/ibissource/iaf/pull/3529

ricardovh commented 2 years ago

The webapp page does not look correct, the SenderPipe has messageLog, inputWrapper, inputValidator, sender, listener but no outputValidator and outputWrapper.

I also think that it will confuse people if nested elements are repeated on the page, now the SenderPipe has a list of nested elements, and the MessageSendingPipe from which it inherits has a different list of nested elements. If I look at it as a Frank!Developer, I should not have to care about inheritance, I just want to know for an element which nested elements, attributes and parameters I can set, and ideally each list should be together and only once on the page, but your current print screen makes it look like it will be all over the page with this PR.

mhdirkse commented 2 years ago

I had a phone call with @nielsm5. We decided that we will ignore @Reintroduce for the JSON. This will address Ricardo's comment. The @Reintroduce annotation will still have its effect on the XSDs.

gvanbrakel commented 2 years ago

I agree with @ricardovh that the screen shot above is confusing for developers, BUT this is in the 'show inheritance' view. The default 'hide inheritance' view is what the developer normally wants to see. There the child elements should be displayed in the right order. To enable this, a reintroduced-attribute must be added to the json for the attributes and config-childs that have the annotation.

mhdirkse commented 2 years ago

Ik heb Gerrit's opmerking verwerkt.

mhdirkse commented 2 years ago

ElementChild may be improved by merging isReintroduced tests with technical override. I will try it out.