Aaahh ... wait a minute ... I think I had added some dependencies as surefire 
wasn't automatically picking up the Junit5 tests.
If you update now, it should execute the tests.

Chris

Am 09.05.19, 16:39 schrieb "Steve Lawrence" <[email protected]>:

    I can't reproduce any failures, but I'm not even sure I'm running the
    testsuite. Here are the steps I ran:
    
      git checkout feature/code-gen
      cd protocols/plc4x && mvn install # needed as a dependency for s7
      cd ../s7/
      rm src/main/resources/org/apache/plc4x/protocols/protocol.dfdl.xsd
      mvn test
    
    I don't get any errors, but it looks like no tests are run:
    
    [INFO] -------------------------------------------------------
    [INFO]  T E S T S
    [INFO] -------------------------------------------------------
    [INFO] Running org.apache.plc4x.protocols.s7.ManualTest
    [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
    0.003 s - in org.apache.plc4x.protocols.s7.ManualTest
    [INFO] Running org.apache.plc4x.protocols.s7.ProtocolTest
    [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
    0.001 s - in org.apache.plc4x.protocols.s7.ProtocolTest
    [INFO]
    [INFO] Results:
    [INFO]
    [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
    
    Any idea what am I doing wrong?
    
    - Steve
    
    On 5/9/19 9:59 AM, Christofer Dutz wrote:
    > Hi Steve.
    > 
    > Yes it is. Just go to:
    > https://github.com/apache/plc4x/tree/feature/code-gen/protocols/s7
    > 
    > the protocols/s7 module in the "code-gen" branch. But you have to rename 
the 
    > org/apache/plc4x/protocols/protocol.dfdl.xsd to something else (I 
currently duplicated the file as a workaround)
    > 
    > As part of the maven build the testsuite is executed and it should 
demonstrate the problem.
    > 
    > Chris
    > 
    > 
    > Am 09.05.19, 15:48 schrieb "Steve Lawrence" <[email protected]>:
    > 
    >     Hmmmm, so with the XML catalog it doesn't even need to look in the 
jar.
    >     I don't see an obvious reason why things would fail to open the 
file://...
    >     
    >     Are your changes available in a github repo/branch somewhere? I could
    >     test it out on my machine and see if I can reproduce.
    >     
    >     I think the first step I'd take is to modify DaffodilXMLLoader.scala 
to
    >     not catch the IOException and just let it bubble up so we can see the
    >     actual error. Ultimately, this wants to become an SDE instead of an 
Assert.
    >     
    >     - Steve
    >     
    >     On 5/9/19 9:19 AM, Christofer Dutz wrote:
    >     > Some more information:
    >     > If I put the external file in the same module it works using this 
code ..
    >     > And I am using the daffodil-built-in-catalog.xml to provide the 
location of the schema.
    >     > 
    >     > So if I set the logging as you suggested this output is produced:
    >     > 
    >     > 2019-05-09 15:14:51:480  org.apache.daffodil.dsom.Import 
Resolver[Computing resolvedLocation]
    >     > 2019-05-09 15:14:51:483  org.apache.daffodil.dsom.Import Resolver[
    >     > importElementNS='None'
    >     > resolvedNamespaceURI='None'
    >     > 
schemaLocationProperty='Some(file:/var/folders/4m/d8xs244900sd8ypzndkf4_3w0000gn/T/s7Schema3372165014658428820.dfdl.xsd)'
    >     > 
resolvedSchemaLocation='Some(org.apache.daffodil.api.URISchemaSource@bd8ade61)']
    >     > 2019-05-09 15:14:51:485  org.apache.daffodil.dsom.DFDLSchemaFile 
Resolver[Loading 
file:/var/folders/4m/d8xs244900sd8ypzndkf4_3w0000gn/T/s7Schema3372165014658428820.dfdl.xsd.]
    >     > 2019-05-09 15:14:51:493  
org.apache.daffodil.xml.DFDLCatalogResolver Resolver[nsURI = 
http://www.w3.org/2001/XMLSchema, baseURI = 
file:/var/folders/4m/d8xs244900sd8ypzndkf4_3w0000gn/T/s7Schema3372165014658428820.dfdl.xsd,
 systemId = null]
    >     > 2019-05-09 15:14:51:493  
org.apache.daffodil.xml.DFDLCatalogResolver Resolver[Unable to resolve.]
    >     > 2019-05-09 15:14:51:560  
org.apache.daffodil.xml.DFDLCatalogResolver Resolver[nsURI = 
http://plc4x.apache.org/s7, baseURI = 
file:/var/folders/4m/d8xs244900sd8ypzndkf4_3w0000gn/T/s7Schema3372165014658428820.dfdl.xsd,
 systemId = null]
    >     > 2019-05-09 15:14:51:561  
org.apache.daffodil.xml.DFDLCatalogResolver Resolver[Found via XML Catalog: 
file:/Users/christofer.dutz/Projects/Apache/PLC4X/protocols/s7/target/classes/org/apache/plc4x/protocols/s7/protocol.dfdl.xsd.]
    >     > 
    >     > org.apache.daffodil.exceptions.Abort: Invariant broken. Unexpected 
exception type org.apache.daffodil.exceptions.Abort: Invariant broken. found 
resource but couldn't open
    >     > org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
    >     > 
org.apache.daffodil.exceptions.Assert$.invariantFailed(Assert.scala:175)
    >     > 
org.apache.daffodil.xml.DFDLCatalogResolver.resolveResource(DaffodilXMLLoader.scala:244)
    >     > 
org.apache.xerces.util.DOMEntityResolverWrapper.resolveEntity(Unknown Source)
    >     > org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
    >     > 
org.apache.daffodil.exceptions.Assert$.invariantFailed(Assert.scala:175)
    >     > 
org.apache.daffodil.dsom.DFDLSchemaFile.$anonfun$iiXMLSchemaDocument$1(DFDLSchemaFile.scala:155)
    >     > 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
    >     > 
    >     >     at 
org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
    >     >     at 
org.apache.daffodil.exceptions.Assert$.invariantFailed(Assert.scala:175)
    >     >     at 
org.apache.daffodil.dsom.DFDLSchemaFile.$anonfun$iiXMLSchemaDocument$1(DFDLSchemaFile.scala:155)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
    >     >     at 
org.apache.daffodil.dsom.DFDLSchemaFile.iiXMLSchemaDocument$lzycompute(DFDLSchemaFile.scala:137)
    >     >     at 
org.apache.daffodil.dsom.DFDLSchemaFile.iiXMLSchemaDocument(DFDLSchemaFile.scala:137)
    >     >     at 
org.apache.daffodil.dsom.Import.$anonfun$mapPair$3(Import.scala:66)
    >     >     at scala.Option.getOrElse(Option.scala:121)
    >     >     at 
org.apache.daffodil.dsom.Import.$anonfun$mapPair$1(Import.scala:45)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
    >     >     at org.apache.daffodil.dsom.Import.mapPair(Import.scala:43)
    >     >     at 
org.apache.daffodil.dsom.IIBase.$anonfun$notSeenThisBefore$1(IIBase.scala:140)
    >     >     at 
scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:12)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
    >     >     at 
org.apache.daffodil.dsom.IIBase.notSeenThisBefore(IIBase.scala:139)
    >     >     at 
org.apache.daffodil.dsom.IIBase.$anonfun$iiSchemaFileMaybe$1(IIBase.scala:257)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
    >     >     at 
org.apache.daffodil.dsom.IIBase.iiSchemaFileMaybe(IIBase.scala:256)
    >     >     at 
org.apache.daffodil.dsom.IIBase.$anonfun$seenAfter$1(IIBase.scala:165)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
    >     >     at org.apache.daffodil.dsom.IIBase.seenAfter(IIBase.scala:164)
    >     >     at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$getImportsOrIncludes$1(SchemaDocIncludesAndImportsMixin.scala:147)
    >     >     at 
scala.collection.TraversableOnce.$anonfun$foldLeft$1(TraversableOnce.scala:157)
    >     >     at 
scala.collection.TraversableOnce.$anonfun$foldLeft$1$adapted(TraversableOnce.scala:157)
    >     >     at scala.collection.Iterator.foreach(Iterator.scala:944)
    >     >     at scala.collection.Iterator.foreach$(Iterator.scala:944)
    >     >     at 
scala.collection.AbstractIterator.foreach(Iterator.scala:1432)
    >     >     at scala.collection.IterableLike.foreach(IterableLike.scala:71)
    >     >     at scala.collection.IterableLike.foreach$(IterableLike.scala:70)
    >     >     at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
    >     >     at 
scala.collection.TraversableOnce.foldLeft(TraversableOnce.scala:157)
    >     >     at 
scala.collection.TraversableOnce.foldLeft$(TraversableOnce.scala:155)
    >     >     at 
scala.collection.AbstractTraversable.foldLeft(Traversable.scala:104)
    >     >     at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.getImportsOrIncludes(SchemaDocIncludesAndImportsMixin.scala:143)
    >     >     at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.getImportsOrIncludes$(SchemaDocIncludesAndImportsMixin.scala:139)
    >     >     at 
org.apache.daffodil.dsom.XMLSchemaDocument.getImportsOrIncludes(SchemaDocument.scala:64)
    >     >     at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$ismli_$1(SchemaDocIncludesAndImportsMixin.scala:158)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
    >     >     at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.ismli_(SchemaDocIncludesAndImportsMixin.scala:157)
    >     >     at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.importStatementsMap(SchemaDocIncludesAndImportsMixin.scala:155)
    >     >     at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.importStatementsMap$(SchemaDocIncludesAndImportsMixin.scala:155)
    >     >     at 
org.apache.daffodil.dsom.XMLSchemaDocument.importStatementsMap(SchemaDocument.scala:64)
    >     >     at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$sali_$1(SchemaDocIncludesAndImportsMixin.scala:165)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
    >     >     at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.sali_(SchemaDocIncludesAndImportsMixin.scala:164)
    >     >     at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.seenAfter(SchemaDocIncludesAndImportsMixin.scala:162)
    >     >     at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.seenAfter$(SchemaDocIncludesAndImportsMixin.scala:162)
    >     >     at 
org.apache.daffodil.dsom.XMLSchemaDocument.seenAfter(SchemaDocument.scala:64)
    >     >     at 
org.apache.daffodil.dsom.SchemaSetIncludesAndImportsMixin.$anonfun$allSchemaFiles$1(SchemaSetIncludesAndImportsMixins.scala:63)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
    >     >     at 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
    >     >     at 
org.apache.daffodil.dsom.SchemaSetIncludesAndImportsMixin.allSchemaFiles(SchemaSetIncludesAndImportsMixins.scala:61)
    >     >     at 
org.apache.daffodil.dsom.SchemaSetIncludesAndImportsMixin.allSchemaFiles$(SchemaSetIncludesAndImportsMixins.scala:61)
    >     >     at 
org.apache.daffodil.dsom.SchemaSet.allSchemaFiles(SchemaSet.scala:61)
    >     >     at 
org.apache.daffodil.dsom.SchemaSet.$anonfun$isValid$2(SchemaSet.scala:128)
    >     >     at 
scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:12)
    >     >     at org.apache.daffodil.oolag.OOLAG$.keepGoing(OOLAG.scala:60)
    >     >     at 
org.apache.daffodil.dsom.SchemaSet.isValid$lzycompute(SchemaSet.scala:127)
    >     >     at 
org.apache.daffodil.dsom.SchemaSet.isValid(SchemaSet.scala:126)
    >     >     at 
org.apache.daffodil.compiler.ProcessorFactory.$anonfun$isError$3(Compiler.scala:110)
    >     >     at 
scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:12)
    >     >     at org.apache.daffodil.oolag.OOLAG$.keepGoing(OOLAG.scala:60)
    >     >     at 
org.apache.daffodil.compiler.ProcessorFactory.$anonfun$isError$1(Compiler.scala:109)
    >     >     at 
scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:12)
    >     >     at 
scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
    >     >     at 
org.apache.daffodil.ExecutionMode$.$anonfun$usingCompilerMode$1(ExecutionMode.scala:64)
    >     >     at 
org.apache.daffodil.compiler.ProcessorFactory.isError(Compiler.scala:109)
    >     >     at 
org.apache.daffodil.compiler.Compiler.compileSource(Compiler.scala:320)
    >     >     at 
org.apache.daffodil.tdml.processor.TDMLDFDLProcessorFactory.compileProcessor(DaffodilTDMLDFDLProcessor.scala:94)
    >     >     at 
org.apache.daffodil.tdml.processor.TDMLDFDLProcessorFactory.$anonfun$getProcessor$1(DaffodilTDMLDFDLProcessor.scala:112)
    >     >     at 
org.apache.daffodil.tdml.SchemaCache.doCompile$lzycompute$1(SchemaCache.scala:95)
    >     >     at 
org.apache.daffodil.tdml.SchemaCache.doCompile$1(SchemaCache.scala:95)
    >     >     at 
org.apache.daffodil.tdml.SchemaCache.$anonfun$compileAndCache$1(SchemaCache.scala:108)
    >     >     at 
scala.collection.mutable.HashMap.getOrElseUpdate(HashMap.scala:82)
    >     >     at 
org.apache.daffodil.tdml.SchemaCache$Cache.getOrElseUpdate(SchemaCache.scala:51)
    >     >     at 
org.apache.daffodil.tdml.SchemaCache.compileAndCache(SchemaCache.scala:107)
    >     >     at 
org.apache.daffodil.tdml.processor.TDMLDFDLProcessorFactory.getProcessor(DaffodilTDMLDFDLProcessor.scala:112)
    >     >     at org.apache.daffodil.tdml.TestCase.run(TDMLRunner.scala:759)
    >     >     at 
org.apache.daffodil.tdml.DFDLTestSuite.runOneTest(TDMLRunner.scala:382)
    >     >     at 
org.apache.plc4x.protocols.AbstractProtocolTest.lambda$getTestsuiteTests$0(AbstractProtocolTest.java:59)
    >     >     at 
org.junit.jupiter.engine.descriptor.JupiterTestDescriptor.executeAndMaskThrowable(JupiterTestDescriptor.java:141)
    >     >     at 
org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.execute(DynamicTestTestDescriptor.java:41)
    >     >     at 
org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor.execute(DynamicTestTestDescriptor.java:24)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$3(HierarchicalTestExecutor.java:113)
    >     >     at 
org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.execute(HierarchicalTestExecutor.java:79)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$0(HierarchicalTestExecutor.java:115)
    >     >     at java.base/java.util.Optional.ifPresent(Optional.java:183)
    >     >     at 
org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$invokeTestMethod$1(TestFactoryTestDescriptor.java:92)
    >     >     at 
org.junit.jupiter.engine.execution.ThrowableCollector.execute(ThrowableCollector.java:40)
    >     >     at 
org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.invokeTestMethod(TestFactoryTestDescriptor.java:79)
    >     >     at 
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:113)
    >     >     at 
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:58)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$3(HierarchicalTestExecutor.java:113)
    >     >     at 
org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.execute(HierarchicalTestExecutor.java:79)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$2(HierarchicalTestExecutor.java:121)
    >     >     at 
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
    >     >     at 
java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
    >     >     at 
java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
    >     >     at 
java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    >     >     at 
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    >     >     at 
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    >     >     at 
java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
    >     >     at 
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
    >     >     at 
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    >     >     at 
java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$3(HierarchicalTestExecutor.java:121)
    >     >     at 
org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.execute(HierarchicalTestExecutor.java:79)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$2(HierarchicalTestExecutor.java:121)
    >     >     at 
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
    >     >     at 
java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
    >     >     at 
java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
    >     >     at 
java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    >     >     at 
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    >     >     at 
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    >     >     at 
java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
    >     >     at 
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
    >     >     at 
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    >     >     at 
java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$3(HierarchicalTestExecutor.java:121)
    >     >     at 
org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.execute(HierarchicalTestExecutor.java:79)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:55)
    >     >     at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:43)
    >     >     at 
org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:170)
    >     >     at 
org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:154)
    >     >     at 
org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:90)
    >     >     at 
com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)
    >     >     at 
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
    >     >     at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    >     >     at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
    >     > 
    >     > Does that help any further? 
    >     > 
    >     > Chris
    >     > 
    >     > 
    >     > 
    >     > Am 09.05.19, 14:45 schrieb "Steve Lawrence" <[email protected]>:
    >     > 
    >     >     Yeah, this looks like a bug. Based on where that exception is 
thrown, it
    >     >     does look like it's able to find the file in the jar, but 
cannot open it
    >     >     for some reason. Unfortunately, our code to open it looks like 
this:
    >     >     
    >     >       try {
    >     >         uri.toURL.openStream() // This will work.
    >     >       } catch {
    >     >         case _: java.io.IOException => Assert.invariantFailed("found
    >     >     resource but couldn't open")
    >     >       }
    >     >     
    >     >     So the comment "This will work" is clearly wrong, and we end up 
masking
    >     >     the reason why it failed. That definitely needs to be fixed.
    >     >     
    >     >     If you bump the log level to LogLevel.Resolver, e.g.:
    >     >     
    >     >       Daffodil.setLoggingLevel(LogLevel.Resolver);
    >     >     
    >     >     Then it should output to the console a log starting with "Found 
on
    >     >     classpath" followed by the URI that import resolved to. That 
might help
    >     >     us figure out why it can't open a stream to the file if 
something looks off.
    >     >     
    >     >     - Steve
    >     >     
    >     >     
    >     >     
    >     >     On 5/9/19 8:04 AM, Christofer Dutz wrote:
    >     >     > Hi Steve,
    >     >     > 
    >     >     > well if that's the case, then I am having trouble doing this.
    >     >     > 
    >     >     > So In this case I have a base schema in "base.jar" and I add 
a dependency to this in "protocol" module.
    >     >     > If I try to use it I get an error message that daffodil has 
found something but it unable to open it.
    >     >     > 
    >     >     > [ERROR] getTestsuiteTests[40]  Time elapsed: 0.013 s  <<< 
ERROR!
    >     >     > org.apache.daffodil.exceptions.Abort: 
    >     >     > Invariant broken. Unexpected exception type 
org.apache.daffodil.exceptions.Abort: Invariant broken. found resource but 
couldn't open
    >     >     > org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
    >     >     > 
org.apache.daffodil.exceptions.Assert$.invariantFailed(Assert.scala:175)
    >     >     > 
org.apache.daffodil.xml.DFDLCatalogResolver.resolveResource(DaffodilXMLLoader.scala:244)
    >     >     > 
org.apache.xerces.util.DOMEntityResolverWrapper.resolveEntity(Unknown Source)
    >     >     > org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
    >     >     > 
org.apache.daffodil.exceptions.Assert$.invariantFailed(Assert.scala:175)
    >     >     > 
org.apache.daffodil.dsom.DFDLSchemaFile.$anonfun$iiXMLSchemaDocument$1(DFDLSchemaFile.scala:155)
    >     >     > 
org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
    >     >     >       at 
org.apache.plc4x.protocols.AbstractProtocolTest.lambda$getTestsuiteTests$0(AbstractProtocolTest.java:54)
    >     >     > 
    >     >     > 
    >     >     > Chris
    >     >     > 
    >     >     > 
    >     >     > 
    >     >     > Am 09.05.19, 13:25 schrieb "Steve Lawrence" 
<[email protected]>:
    >     >     > 
    >     >     >     You should be able to import/include files in jars on the 
classpath
    >     >     >     using the full path inside the jar, i.e. what "jar -jt 
foo.jar" outputs.
    >     >     >     So if foo.jar was on your classpath and contained the 
following
    >     >     >     
    >     >     >       $ jar -jt foo.jar
    >     >     >       META-INF/MANIFEST.MF
    >     >     >       com/foo/dfdl/types.dfdl.xsd
    >     >     >     
    >     >     >     Your schema could reference the types.dfdl.xsd file with:
    >     >     >     
    >     >     >       <xs:include 
schemaLocation="com/foo/dfdl/types.dfdl.xsd" />
    >     >     >     
    >     >     >     You don't need to specify  which jar to import from or 
even that the
    >     >     >     file comes from a jar. Daffodil will just search for that 
path in all
    >     >     >     jars on the classpath.
    >     >     >     
    >     >     >     - Steve
    >     >     >     
    >     >     >     
    >     >     >     On 5/9/19 6:19 AM, Christofer Dutz wrote:
    >     >     >     > Hi all,
    >     >     >     > 
    >     >     >     > after solving my last problem, I am stuck with another 
one … as I mentioned in 
    >     >     >     > the other thread I have one DFDL schema, which defines 
all the simple types that 
    >     >     >     > will be used by any PLC4X schema.
    >     >     >     > 
    >     >     >     > In order to do so, this is located in a dedicated maven 
module and a dedicated jar.
    >     >     >     > 
    >     >     >     > Now I added a dependency to that jar an now want to 
reference this in my 
    >     >     >     > protocol jar.
    >     >     >     > 
    >     >     >     > No matter what I try, DFDL always complains about not 
being able to resolve this.
    >     >     >     > 
    >     >     >     > So how can I reference and/or import schemas contained 
in another jar that’s in 
    >     >     >     > my classpath?
    >     >     >     > 
    >     >     >     > Chris
    >     >     >     > 
    >     >     >     
    >     >     >     
    >     >     > 
    >     >     
    >     >     
    >     > 
    >     
    >     
    > 
    
    

Reply via email to