...
- Modules can modify with the service layer methods via Aspect Oriented Programming (AOP). All core services and all module services are able to be wrapped and manipulated.
- If in a web context, modules can add their own jsp web pages in their /web/module folder. They link these pages to controllers and to OpenMRS via the Spring context /metadataomod/src/main/resources/moduleApplicationContext.xml
- Modules can add to and current jsp page in the web layer via extension points. A module registers an extension in the /metadata /omod/src/main/resources/config.xml for each extension point in the system to which it wants to add content.
- Modules are able add and modify tables in the database. The sqldiff.xml and/or liquibase.xml file in the metadata folder holds the diffs.
- The file extension for modules is ".omod". However, a module is simply a jar underneath. This different extension was chosen for two reasons: First, its just a short form of "OpenMRS Module". Second, its a unique extension and there aren't any other programs known to be using it.
...