Both org.jboss.aspects.security.SecurityDomain and org.jboss.annotation.security.SecurityDomain exist with the exact same definition:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface SecurityDomain { String value(); }
One causes bytecode instrumentation(AOP), one doesn't(EJB3). This is the reason for the separation. Sucks yes, but couldn't think of another way.