Closed mseaton closed 8 months ago
I have issued a PR here for this:
https://github.com/mekomsolutions/openmrs-module-initializer/pull/264
@mogoodrich / @ibacher / @rbuisson thoughts?
So, yeah, I think this is generally probably the right thing to do. We probably need to clean-up the metadata in the RefApp before merging a fix for this in, though.
We probably need to clean-up the metadata in the RefApp before merging a fix for this in, though
That may not be necessary @ibacher . I wonder if you could test that locally with this PR applied. From what I recall with Iniz, it is (a bit to my chagrin) configured to log errors and continue processing by default. So for implementations that use Iniz and don't know any better, if metadata fails to load on startup the system will still continue to start as if nothing had gone wrong, and errors will only appear down the road during usage if something is amiss.
A while back, we added a configuration setting to allow implementations to change this behavior, and in our PIH distribution, we have this behavior set to throw exceptions and fail hard at that time. See https://github.com/mekomsolutions/openmrs-module-initializer/blob/master/readme/rtprops.md#4-initializerstartupload-optional
So as a follow-up @ibacher , I was installing a local version of the refapp to test out an unrelated ticket, and I ran the install with the latest version of Iniz that includes these changes, and it behaves as expected - there are errors in the logs due to one currently failing OCL zip, but all of the other OCL zips process subsequently, as do the other domains, and startup proceeds to completion. Personally, I think this is a mistake for most implementations, but this PR should not adversely impact the refapp.
The current implementation ocl domain simply retrieves an instance of the OCL importer, and executes the
importer.run(zip)
method on the zip files contained within the configuration domain folder.However, when this method fails, it does not throw an exception, but rather saves all of the details of the import including any errors, if any, in the database within an Import record. As a result, the current implementation of the OCL Loader does not throw any exceptions if the OCL loading fails.
The goal of this ticket is to fix this behavior and to ensure the OCL domain throws an Exception if loading of a zip file fails.
@mogoodrich / @ibacher / @mks-d FYI