Pessoal,
Estou tentando usar a classe Reflections do guava para buscar métodos anotados:
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.setUrls(ClasspathHelper.forPackage("br.com.mypackage");
configurationBuilder.setScanners(new MethodAnnotationsScanner());
Reflections reflections = new Reflections(configurationBuilder);
Set<Method> methods = reflections.getMethodsAnnotatedWith(MyAnnotation.class);
Porém recebo o seguinte erro:
Hoje o Vraptor usa a jar do guava na versão r07. Se eu atualizar para o último download do site (guava-11.0.2.jar) o meu código funciona ok. Porém o fileupload para de funcionar. Segue a stack:
java.lang.NoSuchMethodError: com.google.common.collect.ImmutableList.of([Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList;
at br.com.caelum.iogi.parameters.Parameter.computeNameComponents(Parameter.java:29)
at br.com.caelum.iogi.parameters.Parameter.<init>(Parameter.java:14)
at br.com.caelum.vraptor.http.iogi.IogiParametersProvider.parseParameters(IogiParametersProvider.java:113)
at br.com.caelum.vraptor.http.iogi.IogiParametersProvider.getParametersFor(IogiParametersProvider.java:60)
at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.getParametersFor(ParametersInstantiatorInterceptor.java:126)
at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:83)
at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.multipart.CommonsUploadMultipartInterceptor.intercept(CommonsUploadMultipartInterceptor.java:136)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
No pacote do guava tem outras libs (ex. javassist-3.12.1.GA). Pensei em atualizá-las, porém vejo que uma delas é de versão anterior ao que o vraptor está usando (javassist-3.14.0.GA.jar). E também não sei se isso tem a ver com este problema.
Se não houver solução vou fazer a reflection sem o uso do guava com java puro mesmo 
Obrigado e até mais,
