when you use beans.xml to enable/select an alternative it's only selected locally, i.e. in the bean archive where the beans.xml resides. @Priority, on the other hand, selects the alternative globally, i.e. the alternative is selected for the application. How does you deployment look like? Is the beans.xml located in the same bean archive as the bean which attempts to inject a Validator?

since the enablement via beans.xml is on a per bean archive basis, you need to have that alternative defined in the beans.xml which resides in the same archive as the bean which does @Inject Validator.

Otherwise you need to use priority or probably leverage extensions in some way.