Dúvida VRaptor 3 - Interceptors

Buenas!

Seguinte: posso solocar um interceptor dentro de um jar e adicioná-lo ao projeto. Fazendo as devidas configurações, o VRaptor vai procurar os componentes/recursos/interceptadores dentro do jar, e utilizá-los quando necessário.

	<context-param>  
	    <param-name>br.com.caelum.vraptor.packages</param-name>  
	    <param-value>br.com.bronx.util.meus.componentes.e.interceptors</param-value>  
	</context-param>

Ok.

Agora imaginemos o seguinte: nesse jar tem, além dos componentes que preciso, um ou outro interceptor.
Porém, não quero que os interceptors que estão no jar interceptem nenhuma requisição. Só quero utilizar os componentes, e não os interceptors.

Tem como dizer pro VRaptor não utilizar os interceptors daquele jar?

Pensei em separar interceptors e componentes em pacotes diferentes, aí só precisaria definir o param:

	<context-param>  
	    <param-name>br.com.caelum.vraptor.packages</param-name>  
	    <param-value>
	         br.com.bronx.util.meus.componentes,
	         br.com.bronx.util.meus.interceptors
	    </param-value>
	</context-param>

Bem simples, e talvez seja a única solução.

Mas queria saber se dá para registrar só o pacote “raiz”, e de alguma forma falar para o VRaptor não utilziar o interceptor:

	<context-param>  
	    <param-name>br.com.caelum.vraptor.packages</param-name>  
	    <param-value>br.com.bronx.util</param-value>
	</context-param>

É possível? Ou só separando por pacotes mesmo?
Abç

acho que só separando por pacotes… vc não tem um jeito fácil de não deixar o VRaptor usar o interceptor, se ele estiver anotado.

O que vc pode fazer é tentar hackear o componente que registra os interceptors:

@Component
@ApplicationScoped
public class HackedInterceptorRegistry implements InterceptorRegistry {
     public HackedInterceptorRegistry(InterceptorRegistry delegate) {
          this.delegate = delegate;
     }
     public  void register(Class<? extends Interceptor>... interceptors) {
           foreach interceptor
                if (interceptor nao está no pacote maroto)
                    delegate.register(interceptor)
     }
}

se isso não funcionar (por causa do InterceptorRegistry no construtor), estenda TopologicalSortedInterceptorRegistry

Suspeitei desde o princípio.

Acho que uma linha a mais na configuração é [muito] mais simples.

Anyway… Valeu!