As it turns out, the JAX-RS 2.0 spec, section 6.4 actually addresses this particular issue:
By default, just like all the other providers, a single instance of each filter or entity interceptor is instantiated for each JAX-RS application. First the constructor is called, then any requested dependencies are injected, then the appropriate methods are called (simultaneously) as needed. Implementations MAY offer alternative lifecycle options beyond the default one. See Section 4.1 for additional information.
So I should definitely not be seeing the same MonitoringFilter instance intercepting requests on different JAX-RS applications. As mentioned before, this doesn't happen in other WildFly deployments where Weld is not being used. |