plc4x-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christofer Dutz <>
Subject Hardening our build ... what I learnt
Date Fri, 18 Jan 2019 13:40:13 GMT
Hi all,

the last few days I have been building and building and building on all sorts of different
OSes, OS configurations, Java Versions etc.
I did notice a few things:

  1.  Not all libpcap versions support all the features we were using --> Introduced a
Junit5 @RequirePcap and @RequirePcapNg annotations
  2.  Even if a version generally supports the pcapng format, there seem to have been differences
in the code to parse them --> converted all pcapng files to pcap files
  3.  Some ISPs use DNS servers, that return valid IPs for invalid host names --> Made
the tests work with “Unknown Host” as well as “Connection Timeout” … was thinking
of another Annotation
  4.  The sonatype enforcer rules sometimes just pass without errors if too many builds are
done on one system --> switched to the dependency-check-maven … but this needs some more
  5.  RAT doesn’t perform equally on all systems (Only on windows is correctly complained
about missing headers in pcapng files) --> Removed the pcapng files anyway
  6.  Mockito doesn’t seem to work exactly the same on all systems. I think on OpenJDK the
Scraper tests failed due to UnnecesaryStubbing --> Told Mockito to be less a pita by adding
the following annotation to the class: @MockitoSettings(strictness = Strictness.LENIENT)

In general I would like to move away from pcap4j for the handling of pcap and pcapng files
but use Apache Daffodil for this instead, as it has no dependencies on native libraries and
I would like to reduce this sort of dependency to an absolute minimum.

Well at least a lot of my colleagues managed to build successfully without any issues now
… all my tests were finally successful … so hopefully we will no longer scare off people
interested in helping out after having build errors on the first build.

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message