When using aliases, it seems that implicit requirement on extension point that is contributed to is lost.
This is visible when removing the require on old component in webapp-base, test-navtree-contrib-compat.xml:
<!-- FIXME: need to check why this is needed for proper ordering (alias system bug?) --> <require>org.nuxeo.ecm.webapp.tree.nav.NavTreeService</require> <extension target="org.nuxeo.ecm.platform.virtualnavigation.NavTreeService" point="navigationTree"> <navTree treeId="TAG_CLOUD_COMPAT" xhtmlview="/incl/tag_cloud.xhtml" /> </extension>