wearefrank / frank-runner

Run any Frank with Tomcat
Apache License 2.0
16 stars 12 forks source link

Frank!Runner downloads different FrankConfig.xsd than you get through the Frank!Doc webapp #64

Closed mhdirkse closed 1 year ago

mhdirkse commented 1 year ago

When I cleaned my frank-runner checkout and then ran an example, I got a FrankConfig.xsd that contains the following:

  <xs:group name="SenderPipeDeclaredChildGroup">
    <xs:sequence>
      <xs:group ref="SenderElementGroup" minOccurs="1" maxOccurs="1" />
      <xs:group ref="ListenerElementGroup_2" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:group>

When I downloaded FrankConfig.xsd from the webapp, the equivalent part was:

  <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>
jacodg commented 1 year ago

Can you also check with the xml/xsd/FrankConfig-strict.xsd in the ibis-adapterframework-core-*.jar in the webapp? As this is the file that the Frank!Runner will extract and use.

mhdirkse commented 1 year ago

In iaf/core/src/main/resources/xml/xsd/FrankConfig-strict, I see the following:

  <xs:group name="SenderPipeDeclaredChildGroup">
    <xs:sequence>
      <xs:group ref="SenderElementGroup" minOccurs="1" maxOccurs="1" />
      <xs:group ref="ListenerElementGroup_2" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:group>

When I build the iaf project it runs the Frank!Doc doclet. The build produces target/frankdoc/xml/xsd/FrankConfig.xsd. That file has:

  <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>
mhdirkse commented 1 year ago

It seems that the file has been renamed from FrankConfig-strict.xsd to FrankConfig.xsd.

mhdirkse commented 1 year ago

I checked the contents of the core JAR, as follows:

M66C303@LPZWNL000038259 MINGW64 ~/.m2/repository/org/ibissource/ibis-adapterframework-core/7.9-SNAPSHOT
$ $WAF/wafJar.sh -tvf ibis-adapterframework-core-7.9-SNAPSHOT.jar

The result is:

910167 Mon Nov 21 10:42:10 CET 2022 xml/xsd/FrankConfig-compatibility.xsd
1064654 Mon Nov 21 10:42:10 CET 2022 xml/xsd/FrankConfig-strict.xsd
1010552 Mon Nov 21 10:42:10 CET 2022 xml/xsd/FrankConfig.xsd

I guess the Frank!Runner now has to download FrankConfig.xsd instead of FrankConfig-strict.xsd.

mhdirkse commented 1 year ago

Here is a PR that should fix this issue: https://github.com/ibissource/frank-runner/pull/65/files