| Follow-up on
HSEARCH-2942 Pull Request Sent . Now that module dependencies are external, it is a bit annoying to update Search in a WildFly server. One cannot just drop the modules ZIP to the modules directory, but must also update all the Search dependencies. That much should be understandable, but... Due to how we managed SPI implementations (through optional dependencies), users updating Search will have to update all dependencies, not just those they will use. For instance if a user exclusively use embedded Lucene indexes, and updates Search, he will have to update the Lucene module (that's expected), but also Elasticsearch-related dependencies (elasticsearch client, Gson, etc.)! Otherwise the application will fail upon startup, because the updated hibernate-search-engine module will load the updated hibernate-search-elasticsearch module (this is done regardless of whether Elasticsearch is actually used), and the latter will lack the required dependencies. One option to work around this problem is simply for users to only update the parts of Hibernate Search they need. For instance, the problem mentioned above could be avoided by extracting the modules ZIP to the modules directory, then removing the hibernate-search-elasticsearch module. This is rather difficult to explain though, so we should simply distribute multiple ZIPs, and leave users choose which ZIP they need. Ideally we would have one ZIP per feature:
- engine
- orm
- backend-*
- jsr352
- elasticsearch
- elasticsearch-aws
But this is not really necessary, just splitting the modules into "main", "elasticsearch", and "elasticsearch-aws" would be enough (since only those have specific dependencies). |