Sounds great. I do like the idea of including official UDFs with actual functionality that we currently don't support, so it'd useful in that sense, but could also act as a model to follow for implementing UDFs with Daffodil. For testing though, I agree with putting stuff in src/test as we can have good UDFs, bad UDFs and everything in between in a consistent manner.
Re errors, there was some chatter during the planning phase that wasn't in favor of using SDE & SDWs, so would the Daffodil-defined exception objects you referenced be specific to User Defined Functions? On 9/6/19 11:38 AM, Steve Lawrence wrote: > Completely agreed. > > Regarding test UDF's, we should be able to create custom test UDF's in > src/test/{scala,java} which will get compiled into jars and put on the > class path only during testing. Daffodil should be able to find them > just like it would find any other jar on the classpath, allowing us to > fully exercise UDF capabilities (including broken UDFs) without > polluting daffodil proper. > > On 9/6/19 11:31 AM, Beckerle, Mike wrote: >> re: Design-for-Test for UDF facility >> >> >> When this code gets to code review with tests one of the key things will be >> that we get decent diagnostics from this for all the things users can do >> wrong in creating the UDF jar, such as not having it be found, not having >> all the classes in it, not having them named right or derived properly, etc. >> etc. First cut is errors should be throwing a Daffodil-defined exception >> object, which encapsulates whatever exception object the actual underlying >> UDF reflection code or Service API call throws. >> >> >> Regression testing this UDF facility will require some trickery, as some >> tests will not be ordinary JUnit-style tests, as incorrectly-constructed >> jars have to be created and used. >> >> >> I recommend that we add some "official" UDFs to daffodil that are always >> part of the standard build, not because they are useful, but because they >> allow us to test the UDF system. >> >> >> An important test case is also to define such a UDF which throws an >> exception, so that we can have tests that verify the exception is properly >> caught and reported. >> >> ________________________________ >> From: Kilo, Olabusayo <ok...@tresys.com> >> Sent: Friday, September 6, 2019 10:30 AM >> To: dev@daffodil.apache.org <dev@daffodil.apache.org> >> Subject: [DISCUSS] User Defined Functions Capability >> >> I'm requesting a discussion on the addition of the User Defined Functions >> capability to daffodil. The proposal referenced below provides a possible >> solution for Daffodil to be able to process and use User Defined Functions >> referenced in the DFDL Schema. >> >> The original request can be found at >> https://issues.apache.org/jira/browse/DAFFODIL-2186 and the proposal can be >> found >> https://cwiki.apache.org/confluence/display/DAFFODIL/Proposal%3A+User+Defined+Functions. >> -- Best Regards Lola K.