VRaptor 3 - ordem de execução dos interceptors

Procurei nas docs mas não encontrei, existe alguma forma de garantir a ordem de execução dos interceptors?

obrigado,
galmeida

Sim existe

cria um cara que implementa InterceptorSequence e anota ele com @Intercepts

e tira o @Intercepts dos interceptors que estiverem dentro da stack

[]'s

não funciou, acho que quando eu tiro o @Intercepts dos interceptors eles nao vao para o container, devo colocar alguma outra anotação neles?

org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [br.com.directtalk.capim.core.vr.ErrorInterceptor] is defined: no bean for this type registered
br.com.caelum.vraptor.ioc.spring.VRaptorApplicationContext.getBean(VRaptorApplicationContext.java:194)
br.com.directtalk.capim.core.vr.spring.SpringBasedContainer.instanceFor(SpringBasedContainer.java:45)
br.com.caelum.vraptor.interceptor.DefaultInterceptorRegistry.interceptorsFor(DefaultInterceptorRegistry.java:56)
br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:54)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:57)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:71)
br.com.caelum.vraptor.core.URLParameterExtractorInterceptor.intercept(URLParameterExtractorInterceptor.java:45)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:57)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:71)
br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:70)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:57)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:71)
br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:71)
br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:99)
br.com.directtalk.capim.core.vr.spring.SpringProvider.provideForRequest(SpringProvider.java:41)
br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:97)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

coloca @Component em cima deles

Obrigado Lucas,
funcionou, apesar de que ele se comportou da forma contraria do que eu esperava

@Intercepts
@RequestScoped
public class CapimInterceptors implements InterceptorSequence {

    @SuppressWarnings("unchecked")
    @Override
    public Class<? extends Interceptor>[] getSequence() {
        return new Class[]{ SegundoFiltro.class, PrimeiroFiltro.class, };
    }
}

mais uma pergunta, o @RequestScoped continua no filtro, certo?

Obrigado,
galmeida

por padrão é request scoped…

então… o vraptor tá executando os interceptors na ordem inversa dos que estão retornados no getSequence?

exato

registrei o bug… mas é provavel que se você estiver usando a lógica do interceptor depois do stack.next, ele execute ao inverso mesmo…

verdade, se a logica estivesse depois do stack.next() ela seria executada ao contrario, mas nao foi esse o caso, a lógica estava antes.

galmeida