@Contribute is a great idea, but there are two problems (as discussed on the mailing list)
1) Marker annotations on the contribute method should be simple annotation, not wrapped inside @Marker, i.e.:
public void contributeBlueNames(...)
2) The comparison of marker annotations on the contribution method to the marker annotations for the service is slightly off. It was done with equals(), but it should be that the service contains all maker annotations from the contribution method.