| The idea would be to implement for each module (mapper-orm, backend-lucene, backend-elasticsearch, more in the future...) a smoke test, which will fail if the module is not in the classpath (the test might fail in other cases, but it must fail if the module is not in the classpath). The test itself will not include any configuration related to how the tested module is added to the classpath; it must be generic. We will add one maven-failsafe-plugin execution per "distribution bundle":
- Maven artifacts
- Our distribution ZIP/.tar.gz
- WildFly in library mode (hibernate-search bundled with the application)
- If we have the time:
- OSGi?
- Wildfly in module mode (hibernate-search bundled as a JBoss module)
The end goal is that, each time we add a new publicly exposed module, we only need to add a single smoke test for that module, and the build will automatically test that every "distribution bundle" correctly includes that new module. Similarly, whenever we change any dependency, existing smoke tests for the publicly exposed modules will check that every "distribution bundle" correcly includes the necessary dependencies. Guillaume mentioned the Hibernate Validator includes something along the same line, running the same tests both "out of container" and in WildFly. See https://github.com/hibernate/hibernate-validator/blob/master/tck-runner/pom.xml#L177 |