Steps to reproduce:
- Within Portal source, add a ".lfrbuild-portal" trigger file to all of the modules within the portal-search-elasticsearch7 app
- Build the portal-search-elasticsearch7 modules using gradle deploy
- Generate the LPKGs using the "ant build-app-lpkg" command within the modules directory (there should be 3 LPKGs: API, Impl, SPI)
- Add property restart-required=false within each LPKG's liferay-marketplace.properties file
- Combine the 3 LPKGs into a single "container" LPKG (zip up the 3 LPKGs into one file and change the extension of that file to .lpkg)
- Place the single LPKG within the Portal bundle's deploy folder
- Start Portal
Actual result: The impl module fails to start due to unresolved requirement errors:
Note: This does not happen when deploying the individual jars within the deploy folder. This also does not happen when deploying the LPKGs within the osgi/marketplace directory. When hot deploying LPKGs, the current framework can only see the installation of each module one at a time so in the above example, elasticsearch7.impl isn't able to resolve correctly since elasticsearch7.spi wasn't installed yet.
Workaround: Restart Portal OR before hot deploying, extract and package the elasticsearch7.spi jar within the API.lpkg.
Portal master git commit: 634eeea1c7756f15060d98510e53474920fc43d1
Portal 7.2.x git commit: 01bf21c5f36cd11f71e9805c64faf46376057fc4