@wolf that seems to have fixed it! Or, at least, I got by the liquibase errors and am on to debugging other errors… looks like there are a fair amount of modules we use (not in the Ref App) that need there moduleApplicationContext.xml changed to switch “ref local” to “ref bean”:
fyi @ibacher@dkayiwa… will continue to work through this when I get a chance and keep you posted…
Both files you shared contain org/openmrs/liquibase/updates/liquibase-update-to-latest-2.0.x.xml in the library openmrs-api-2.4.0-alpha.jar so the error message
Error: org\openmrs\liquibase\updates\liquibase-update-to-latest-2.0.x.xml does not exist
is misleading.
Could you please let me know when you are getting the error message? A detailed list of the commands you are executing would allow me to reproduce this on my machine.
@ibacher@dkayiwa I’m wondering, do we have any documentation anywhere of “things you may need to change in your modules to make them compatibility with Core 2.4.x”?
We don’t, but we probably should. For the most part, the necessary changes are pretty trivial and (should be) fully backwards compatible, unless you’re running a version of OpenMRS prior to 1.9.x.
The most common issue was the one fixed in this commit. Basically, if you have a line like this in your webModuleApplicationContext.xml file, remove it:
The other common one was that the local attribute in Spring XML files has been completely removed from the <ref> element so if you have a ref like this one:
<ref local="providerSuggestionService"/>
Replace it with:
<ref bean="providerSuggestionService"/>
Both of those things were deprecated in Spring 3, but only removed in Spring 5.
If you have any of the OpenMRS version-specific annotations or version strings in the config.xml make sure that they are updated to include 2.4.* as well.
Migrated to Liquibase 3.10.0. This is (hopefully) largely an invisible change to modules, but if you have an explicit dependency on any of the old Liquibase extensions, that dependency should be removed.
Migrated from Log4J to Log4J2. Again (hopefully) this is an invisible change, unless a module is manipulating logging configuration in code (e.g., changing logging levels, etc.). If a module is doing that, the code will likely need to be completely re-written, as the internal APIs of Log4J2 are a complete overhaul. Anything that worked using SLF4J (preferred) or Apache Commons Logging should continue to work.
This query on GitHub should find most of the relevant commits made to the modules under the OpenMRS organization.
This post is now available, in a slightly expanded format, as a Wiki page.
@gcliff according to the discussion we had on the documentation call, @cliff we agreed that you add the link for this thread to the release notes. cc @jennifer@ibacher
Thanks @gcliff! I’ll get that merged into the repo. Sorry for the confusing process, I just didn’t want to commit something I wasn’t sure would solve the problem.