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 > > > > > > > > > > > > > > > > > > > > > >
