splitting the openehr-rm component to several smaller components

Dear all,

Through the recent discussions on the Java list and local prototyping work in Sweden, the need to split the openehr-rm component into several even smaller components has been recognized. Currently the openehr-rm consists of the Java implementation of all openEHR Information Models, namely Common, Support, Data Types, Data Structures, EHR, Demographics. The idea is to divide all-in-one RM component into several smaller components that are either mapped exactly to the sub Information Model specification or grouped into logically related components.

The main drive for this is smaller coherent component encourages better code re-use and also easier to test and maintain. Following the recent discussions on the Java list, it appears that some of the sub Information Models are more suitable for immutable objects pattern, e.g . data types, while others might not. Having them in different physical components would make clear distinction in the implementation strategy and reduce potential confusion to the application developers. Moreover, it might be necessary to have dedicated wrapper layers for specific purpose that mainly will deal with high level components and not necessarily have direct dependency to all the lowest packages.

In practice, what does it mean to application developers is that instead of one dependency block in the Maven project file, there will be several dependency blocks.

Any thoughts?

Regards,
Rong