AEMContext not able to adapt to correct implementation class based on the models annotation resourceType property

Description

We implemented an interface with multiple implementations. To determine the "closest" implementation to use when adapting to the interface we configured the resourceType properties on the implementation classes as described here.

https://sling.apache.org/documentation/bundles/models.html#associating-a-model-class-with-a-resource-type-since-1-3-0-

This works on a AEM instance, but when we wrote a test to validate that the correct implementation is used with certain resourceTypes we noticed that the AEMContext is not behaving as we expected.
It seems it doens't take the resourceType property into account when deciding.
Right now when multiple implementations are found, it seems it just takes the first implementation that matches based on the alphabetical order of the class names.

Code example

Test Example

Test JSON

We assume that the reason for this behaviour is because the aem-mock still uses an old sling.api version 2.11.0 whereas AEM already uses the newer 2.18.4 version that includes this functionality.
Functionality is available version 2.13+

WCM.io mvn dependency:tree

AEM 6.4 Sling Api bundle

Status

Assignee

Unassigned

Reporter

Ben Oeyen

Labels

Components

Priority

Major
Configure