This issue is caused by the fact that @AnnotationDrivenTx is handled in order before @*ValueSource annotations (ordering appears to be alphabetical).
The processing of @AnnotationDrivenTx causes certain beans to be instantiated (in order to be proxied) and so any beans that needed @ExternalValues end up getting nulls instead. Later, during processing of @*ValueSource annotations, the @ExternalValue fields do get assigned, but it's too late at that point.
The solution here is to allow for explicit ordering of @Plugin annotations. This will be addressed by a separate issue.