In several places, the specification reiterates that an event type may not contain a type variable. However, it appears that this restriction is only enforced at runtime when the event object is passed to either Event#fire() or BeanManager#fireEvent() method. I would suggest that an validation check be added so that the container detects an illegal Event definition at deployment type. Here's an example of an illegal definition (from my understanding):

public class VoterRegistration<T> { ... }

@Any Event<VoterRegistration<Democrat>> democratRegisteredEvent;


Dan Allen
Senior Software Engineer, Red Hat | Author of Seam in Action
Registered Linux User #231597