Vraptor3 - IOC Container

7 respostas
wpivotto

Pessoal alguém sabe se é possível disponibilizar o container de IOC fora da requisição web, fora dos escopos (@Prototype, @Application, @Request, @Session)?

O que eu gostaria de fazer é resolver todas as dependências de uma tarefa que roda em background. Com o quartz eu poderia fazer dessa maneira:

@Component
@ApplicationScoped
public class DefaultJobFactory implements JobFactory {

	private final Container container;
	
	public DefaultJobFactory(Container container) {
		this.container = container;
	}
	
	public Job newJob(TriggerFiredBundle bundle, Scheduler scheduler) throws SchedulerException {
		return container.instanceFor(bundle.getJobDetail().getJobClass());
	}

}

Mas não vai funcionar, eu precisaria que a minha classe rodasse num @JobScope

Eu sei que o Spring disponibiliza alguns componentes para realizar jobs em background, mas não gostaria de depender da implementação do container, pois a escolha depende do projeto.

A questão é, eu consigo fazer isso apenas sobrescrevendo alguns componentes do Vraptor?

7 Respostas

Lucas_Cavalcanti

o VRaptor não tem nada ainda pra criar escopos customizados. Mas vc pode criar o escopo direto no container, e usar o @JobScope, por exemplo.

daí se vc precisar mudar o container, vc só muda a lógica de criar o escopo.

de qqer forma, se o job for @PrototypeScoped resolve seu problema, não? afinal vc não vai querer reutilizar uma instância do job (ou vai?)

wpivotto

Lucas Cavalcanti:
o VRaptor não tem nada ainda pra criar escopos customizados. Mas vc pode criar o escopo direto no container, e usar o @JobScope, por exemplo.

daí se vc precisar mudar o container, vc só muda a lógica de criar o escopo.

de qqer forma, se o job for @PrototypeScoped resolve seu problema, não? afinal vc não vai querer reutilizar uma instância do job (ou vai?)

Na verdade sim, queria fazer algo do tipo:

@Every("30s")
public class MyJob implements Job {

	public MyJob(MyDependency dependency){
            ...
        }
	
	@Override
	public void execute(JobExecutionContext context) throws JobExecutionException {
		...
	}

}

e gostaria que o container resolve-se minha dependência a cada execução

Lucas_Cavalcanti

isso não seria o tempo de vida da instância do job (que é o scheduler que controla) e sim configurações de agendamento…

o que vc precisa não é de um escopo novo, é de um jeito de registrar automaticamente um job, certo?

isso é mais fácil de fazer, e é só com a api do VRaptor:

  • crie uma anotação @Job, por exemplo, anotada com @Stereotype (do vraptor). Assim o VRaptor já transforma automaticamente a classe como um componente, e vc consegue tratá-la separadamente:
@Stereotype
@Target(TYPE)
@Retention(RUNTIME)
public @interface Job {
}
  • crie um StereotypeHandler que vai registrar o job em algum lugar:
@Component
@ApplicationScoped
public class JobHandler implements StereotypeHandler {

    //stereotype => Job.class

   //handle => lê as anotações de configuração e registra o job no scheduler
}

é o que vc queria?

wpivotto

Lucas Cavalcanti:
isso não seria o tempo de vida da instância do job (que é o scheduler que controla) e sim configurações de agendamento…

o que vc precisa não é de um escopo novo, é de um jeito de registrar automaticamente um job, certo?

isso é mais fácil de fazer, e é só com a api do VRaptor:

  • crie uma anotação @Job, por exemplo, anotada com @Stereotype (do vraptor). Assim o VRaptor já transforma automaticamente a classe como um componente, e vc consegue tratá-la separadamente:
@Stereotype
@Target(TYPE)
@Retention(RUNTIME)
public @interface Job {
}
  • crie um StereotypeHandler que vai registrar o job em algum lugar:
@Component
@ApplicationScoped
public class JobHandler implements StereotypeHandler {

    //stereotype => Job.class

   //handle => lê as anotações de configuração e registra o job no scheduler
}

é o que vc queria?

Ok Lucas, era mais ou menos isso…

o problema é que com o Guice não consegui usar StereotypeHandlers, aparentemente eles não são chamados. Com o Spring funciona.

Resolvi da seguinte forma https://github.com/wpivotto/vraptor-tasks/blob/master/src/br/com/caelum/vraptor/tasks/TaskHandler.java

Segue o log…

23:34:43,343  INFO [BasicConfiguration  ] Using class br.com.caelum.vraptor.ioc.guice.GuiceProvider as Container Provider

23:34:44,484 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.interceptor.multipart.UploadedFileConverter to class br.com.caelum.vraptor.interceptor.multipart.UploadedFileConverter

23:34:44,500 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.LongConverter to class br.com.caelum.vraptor.converter.LongConverter

23:34:44,500 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.EnumConverter to class br.com.caelum.vraptor.converter.EnumConverter

23:34:44,500 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.IntegerConverter to class br.com.caelum.vraptor.converter.IntegerConverter

23:34:44,500 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.LocaleBasedDateConverter to class br.com.caelum.vraptor.converter.LocaleBasedDateConverter

23:34:44,500 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.PrimitiveCharConverter to class br.com.caelum.vraptor.converter.PrimitiveCharConverter

23:34:44,500 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.LocaleBasedCalendarConverter to class br.com.caelum.vraptor.converter.LocaleBasedCalendarConverter

23:34:44,500 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.CharacterConverter to class br.com.caelum.vraptor.converter.CharacterConverter

23:34:44,500 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.ByteConverter to class br.com.caelum.vraptor.converter.ByteConverter

23:34:44,515 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.PrimitiveDoubleConverter to class br.com.caelum.vraptor.converter.PrimitiveDoubleConverter

23:34:44,515 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.PrimitiveFloatConverter to class br.com.caelum.vraptor.converter.PrimitiveFloatConverter

23:34:44,515 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.PrimitiveBooleanConverter to class br.com.caelum.vraptor.converter.PrimitiveBooleanConverter

23:34:44,515 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.StringConverter to class br.com.caelum.vraptor.converter.StringConverter

23:34:44,515 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.ShortConverter to class br.com.caelum.vraptor.converter.ShortConverter

23:34:44,515 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.FloatConverter to class br.com.caelum.vraptor.converter.FloatConverter

23:34:44,515 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.BigDecimalConverter to class br.com.caelum.vraptor.converter.BigDecimalConverter

23:34:44,515 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.BigIntegerConverter to class br.com.caelum.vraptor.converter.BigIntegerConverter

23:34:44,515 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.PrimitiveShortConverter to class br.com.caelum.vraptor.converter.PrimitiveShortConverter

23:34:44,531 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.PrimitiveByteConverter to class br.com.caelum.vraptor.converter.PrimitiveByteConverter

23:34:44,531 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.PrimitiveIntConverter to class br.com.caelum.vraptor.converter.PrimitiveIntConverter

23:34:44,531 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.DoubleConverter to class br.com.caelum.vraptor.converter.DoubleConverter

23:34:44,531 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.PrimitiveLongConverter to class br.com.caelum.vraptor.converter.PrimitiveLongConverter

23:34:44,531 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.converter.BooleanConverter to class br.com.caelum.vraptor.converter.BooleanConverter

23:34:44,531 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.ioc.ResourceHandler to class br.com.caelum.vraptor.ioc.ResourceHandler

23:34:44,562 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.ioc.ConverterHandler to class br.com.caelum.vraptor.ioc.ConverterHandler

23:34:44,562 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.ioc.InterceptorStereotypeHandler to class br.com.caelum.vraptor.ioc.InterceptorStereotypeHandler

23:34:44,562 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.deserialization.DeserializesHandler to class br.com.caelum.vraptor.deserialization.DeserializesHandler

23:34:44,562 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.serialization.xstream.XStreamXMLSerialization to class br.com.caelum.vraptor.serialization.xstream.XStreamXMLSerialization

23:34:44,578 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.serialization.xstream.XStreamJSONSerialization to class br.com.caelum.vraptor.serialization.xstream.XStreamJSONSerialization

23:34:44,593  INFO [WebAppBootstrapFactory] No static WebAppBootstrap found.

23:34:44,593  INFO [BasicConfiguration  ] br.com.caelum.vraptor.scanning = null

23:34:44,812 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.tasks.jobs.DefaultJobProvider to class br.com.caelum.vraptor.tasks.jobs.DefaultJobProvider

23:34:44,828 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.tasks.jobs.DefaultJobProvider to class br.com.caelum.vraptor.tasks.jobs.DefaultJobProvider

23:34:44,828 DEBUG [GuiceComponentRegistry] Binding interface br.com.caelum.vraptor.tasks.jobs.JobProvider to class br.com.caelum.vraptor.tasks.jobs.DefaultJobProvider

23:34:44,828 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.util.hibernate.extra.ParameterLoaderInterceptor to class br.com.caelum.vraptor.util.hibernate.extra.ParameterLoaderInterceptor

23:34:44,828 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.util.hibernate.extra.ParameterLoaderInterceptor to class br.com.caelum.vraptor.util.hibernate.extra.ParameterLoaderInterceptor

23:34:44,828 DEBUG [GuiceComponentRegistry] Binding interface br.com.caelum.vraptor.interceptor.Interceptor to class br.com.caelum.vraptor.util.hibernate.extra.ParameterLoaderInterceptor

23:34:44,843 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.tasks.jobs.TransactionalJobProvider to class br.com.caelum.vraptor.tasks.jobs.TransactionalJobProvider

23:34:44,843 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.tasks.jobs.TransactionalJobProvider to class br.com.caelum.vraptor.tasks.jobs.TransactionalJobProvider

23:34:44,843 DEBUG [GuiceComponentRegistry] Ignoring binding of interface br.com.caelum.vraptor.tasks.jobs.JobProvider to class br.com.caelum.vraptor.tasks.jobs.TransactionalJobProvider

23:34:44,843 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.tasks.scheduler.SchedulerCreator to class br.com.caelum.vraptor.tasks.scheduler.SchedulerCreator

23:34:44,859 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.tasks.scheduler.SchedulerCreator to class br.com.caelum.vraptor.tasks.scheduler.SchedulerCreator

23:34:44,859 DEBUG [GuiceComponentRegistry] Binding interface br.com.caelum.vraptor.ioc.ComponentFactory to class br.com.caelum.vraptor.tasks.scheduler.SchedulerCreator

23:34:44,859 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.jobs.ClientsUpdater to class br.com.caelum.vraptor.jobs.ClientsUpdater

23:34:44,859 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.jobs.ClientsUpdater to class br.com.caelum.vraptor.jobs.ClientsUpdater

23:34:44,859 DEBUG [GuiceComponentRegistry] Binding interface br.com.caelum.vraptor.tasks.TransactionalTask to class br.com.caelum.vraptor.jobs.ClientsUpdater

23:34:44,859 DEBUG [GuiceComponentRegistry] Binding interface br.com.caelum.vraptor.tasks.Task to class br.com.caelum.vraptor.jobs.ClientsUpdater

23:34:44,859 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.util.hibernate.SessionCreator to class br.com.caelum.vraptor.util.hibernate.SessionCreator

23:34:44,875 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.util.hibernate.SessionCreator to class br.com.caelum.vraptor.util.hibernate.SessionCreator

23:34:44,875 DEBUG [GuiceComponentRegistry] Ignoring binding of interface br.com.caelum.vraptor.ioc.ComponentFactory to class br.com.caelum.vraptor.util.hibernate.SessionCreator

23:34:44,875 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.jobs.Setup to class br.com.caelum.vraptor.jobs.Setup

23:34:44,875 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.jobs.Setup to class br.com.caelum.vraptor.jobs.Setup

23:34:44,875 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.util.hibernate.SessionFactoryCreator to class br.com.caelum.vraptor.util.hibernate.SessionFactoryCreator

23:34:44,890 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.util.hibernate.SessionFactoryCreator to class br.com.caelum.vraptor.util.hibernate.SessionFactoryCreator

23:34:44,890 DEBUG [GuiceComponentRegistry] Ignoring binding of interface br.com.caelum.vraptor.ioc.ComponentFactory to class br.com.caelum.vraptor.util.hibernate.SessionFactoryCreator

23:34:44,890 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.tasks.jobs.DefaultJobFactory to class br.com.caelum.vraptor.tasks.jobs.DefaultJobFactory

23:34:44,890 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.tasks.jobs.DefaultJobFactory to class br.com.caelum.vraptor.tasks.jobs.DefaultJobFactory

23:34:44,890 DEBUG [GuiceComponentRegistry] Binding interface org.quartz.spi.JobFactory to class br.com.caelum.vraptor.tasks.jobs.DefaultJobFactory

23:34:44,890 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.jobs.SimpleTask to class br.com.caelum.vraptor.jobs.SimpleTask

23:34:44,890 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.jobs.SimpleTask to class br.com.caelum.vraptor.jobs.SimpleTask

23:34:44,890 DEBUG [GuiceComponentRegistry] Ignoring binding of interface br.com.caelum.vraptor.tasks.Task to class br.com.caelum.vraptor.jobs.SimpleTask

23:34:44,906 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.tasks.TaskHandler to class br.com.caelum.vraptor.tasks.TaskHandler

23:34:44,906 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.tasks.TaskHandler to class br.com.caelum.vraptor.tasks.TaskHandler

23:34:44,906 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.tasks.scheduler.QuartzTaskScheduler to class br.com.caelum.vraptor.tasks.scheduler.QuartzTaskScheduler

23:34:44,906 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.tasks.scheduler.QuartzTaskScheduler to class br.com.caelum.vraptor.tasks.scheduler.QuartzTaskScheduler

23:34:44,906 DEBUG [GuiceComponentRegistry] Binding interface br.com.caelum.vraptor.tasks.scheduler.TaskScheduler to class br.com.caelum.vraptor.tasks.scheduler.QuartzTaskScheduler

23:34:44,906 DEBUG [GuiceComponentRegistry] Binding class br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor to class br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor

23:34:44,906 DEBUG [GuiceComponentRegistry] Ignoring binding of class br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor to class br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor

23:34:44,906 DEBUG [GuiceComponentRegistry] Ignoring binding of interface br.com.caelum.vraptor.interceptor.Interceptor to class br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor

23:34:45,031 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.tasks.jobs.DefaultJobProvider

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.util.hibernate.extra.ParameterLoaderInterceptor

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.tasks.jobs.TransactionalJobProvider

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.tasks.scheduler.SchedulerCreator

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.jobs.ClientsUpdater

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.util.hibernate.SessionCreator

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.jobs.Setup

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.util.hibernate.SessionFactoryCreator

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.tasks.jobs.DefaultJobFactory

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.jobs.SimpleTask

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.tasks.TaskHandler

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.tasks.scheduler.QuartzTaskScheduler

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.multipart.DefaultMultipartConfig

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.validator.MessageInterpolatorFactory

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.resource.DefaultResourceNotFoundHandler

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.validator.ValidatorFactoryCreator

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.http.route.DefaultRouter

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.core.DefaultRoutes

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.http.EncodingHandlerFactory

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.http.route.PathAnnotationRoutesParser

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.TopologicalSortedInterceptorRegistry

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.serialization.HibernateProxyInitializer

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.DefaultTypeNameExtractor

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.deserialization.XStreamXMLDeserializer

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.view.DefaultAcceptHeaderToFormat

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.http.route.NoRoutesConfiguration

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.validator.JSR303ValidatorFactory

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.http.route.DefaultTypeFinder

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.deserialization.DefaultDeserializers

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.http.DefaultResourceTranslator

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.restfulie.headers.DefaultRestDefaults

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.resource.DefaultMethodNotAllowedHandler

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.core.DefaultInterceptorHandlerFactory

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.http.ParanamerNameProvider

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.http.route.JavaEvaluator

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.core.DefaultConverters

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.proxy.ObjenesisProxifier

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.core.EnhancedRequestExecution

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.core.DefaultInterceptorStack

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.InstantiateInterceptor

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.core.DefaultMethodInfo

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.http.ognl.OgnlParametersProvider

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.serialization.xstream.XStreamJSONSerialization

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.view.DefaultHttpResult

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.view.DefaultValidationViewsFactory

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.serialization.HTMLSerialization

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.http.DefaultFormatResolver

23:34:45,046 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.view.DefaultRefererResult

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.core.DefaultExceptionMapper

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.deserialization.JsonDeserializer

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.serialization.xstream.XStreamJSONPSerialization

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.download.DownloadInterceptor

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.core.DefaultResult

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.ForwardToDefaultViewInterceptor

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.view.EmptyResult

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.config.ApplicationConfiguration

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.validator.ReplicatorOutjector

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.view.DefaultLogicResult

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.http.ognl.EmptyElementsRemoval

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.FlashInterceptor

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.serialization.DefaultRepresentationResult

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.view.DefaultPageResult

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.view.DefaultStatus

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.restfulie.headers.DefaultRestHeadersHandler

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.serialization.xstream.XStreamXMLSerialization

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.core.JstlLocalization

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.OutjectResult

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.multipart.Servlet3MultipartInterceptor

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.view.DefaultPathResolver

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.DeserializingInterceptor

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.validator.JSR303Validator

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.validator.DefaultValidator

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.interceptor.multipart.UploadedFileConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.LongConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.EnumConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.IntegerConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.LocaleBasedDateConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.PrimitiveCharConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.LocaleBasedCalendarConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.CharacterConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.ByteConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.PrimitiveDoubleConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.PrimitiveFloatConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.PrimitiveBooleanConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.StringConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.ShortConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.FloatConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.BigDecimalConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.BigIntegerConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.PrimitiveShortConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.PrimitiveByteConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.PrimitiveIntConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.DoubleConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.PrimitiveLongConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.converter.BooleanConverter

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.ResourceHandler

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.ConverterHandler

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.InterceptorStereotypeHandler

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.deserialization.DeserializesHandler

23:34:45,062 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.ComponentFactoryProviderAdapter<org.quartz.Scheduler>

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.ComponentFactoryProviderAdapter<org.hibernate.Session>

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.ComponentFactoryProviderAdapter<org.hibernate.SessionFactory>

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.ComponentFactoryProviderAdapter<javax.validation.MessageInterpolator>

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.ComponentFactoryProviderAdapter<javax.validation.ValidatorFactory>

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.ComponentFactoryProviderAdapter<br.com.caelum.vraptor.http.EncodingHandler>

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.ComponentFactoryProviderAdapter<javax.validation.Validator>

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for com.google.inject.Stage

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.VRaptorAbstractModule$4

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.AllImplementationsProvider

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.GuiceProvider$GuiceContainer

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for org.apache.catalina.core.ApplicationContextFacade

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.VRaptorAbstractModule$1

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.VRaptorAbstractModule$3

23:34:45,078 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.VRaptorAbstractModule$2

23:34:45,093 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for com.google.inject.multibindings.Multibinder$RealMultibinder

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See <a href="http://logging.apache.org/log4j/1.2/faq.html#noconfig">http://logging.apache.org/log4j/1.2/faq.html#noconfig</a> for more info.

23:34:47,937  INFO [SimpleThreadPool    ] Job execution threads will use class loader of thread: Thread-1

23:34:47,984  INFO [SchedulerSignalerImpl] Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl

23:34:47,984  INFO [QuartzScheduler     ] Quartz Scheduler v.2.0.1 created.

23:34:47,984  INFO [RAMJobStore         ] RAMJobStore initialized.

23:34:48,000  INFO [QuartzScheduler     ] Scheduler meta-data: Quartz Scheduler (v2.0.1) DefaultQuartzScheduler with instanceId 'NON_CLUSTERED

Scheduler class: org.quartz.core.QuartzScheduler - running locally.

NOT STARTED.

Currently in standby mode.

Number of jobs executed: 0

Using thread pool org.quartz.simpl.SimpleThreadPool - with 10 threads.

Using job-store org.quartz.simpl.RAMJobStore - which does not support persistence. and is not clustered.

23:34:48,000 INFO [StdSchedulerFactory ] Quartz scheduler ‘DefaultQuartzScheduler’ initialized from default resource file in Quartz package: 'quartz.properties’
23:34:48,000 INFO [StdSchedulerFactory ] Quartz scheduler version: 2.0.1
23:34:48,000 INFO [QuartzScheduler ] JobFactory set to: br.com.caelum.vraptor.tasks.jobs.DefaultJobFactory@12b700f
23:34:48,062 DEBUG [QuartzTaskScheduler ] Task br.com.caelum.vraptor.jobs.ClientsUpdater scheduled
23:34:48,062 DEBUG [QuartzTaskScheduler ] Task br.com.caelum.vraptor.jobs.SimpleTask scheduled
23:34:48,062 INFO [QuartzScheduler ] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
23:34:48,093 INFO [DefaultConverters ] Registering bundled converters
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.interceptor.multipart.UploadedFileConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.LongConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.EnumConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.IntegerConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.LocaleBasedDateConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.PrimitiveCharConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.LocaleBasedCalendarConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.CharacterConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.ByteConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.PrimitiveDoubleConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.PrimitiveFloatConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.PrimitiveBooleanConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.StringConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.ShortConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.FloatConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.BigDecimalConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.BigIntegerConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.PrimitiveShortConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.PrimitiveByteConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.PrimitiveIntConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.DoubleConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.PrimitiveLongConverter
23:34:48,109 DEBUG [DefaultConverters ] bundled converter to be registered: class br.com.caelum.vraptor.converter.BooleanConverter
23:34:48,218 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.util.hibernate.extra.ParameterLoaderInterceptor
23:34:48,234 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor
23:34:48,234 DEBUG [DeserializesHandler ] Ignoring default deserializer interface br.com.caelum.vraptor.deserialization.XMLDeserializer
23:34:48,234 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.interceptor.InstantiateInterceptor
23:34:48,234 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor
23:34:48,234 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor
23:34:48,234 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.interceptor.download.DownloadInterceptor
23:34:48,234 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.interceptor.ForwardToDefaultViewInterceptor
23:34:48,234 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.interceptor.FlashInterceptor
23:34:48,234 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor
23:34:48,234 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.interceptor.OutjectResult
23:34:48,234 DEBUG [InterceptorStereotypeHandler] Found interceptor for interface br.com.caelum.vraptor.interceptor.multipart.MultipartInterceptor
23:34:48,234 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor
23:34:48,234 DEBUG [InterceptorStereotypeHandler] Found interceptor for class br.com.caelum.vraptor.interceptor.DeserializingInterceptor
23:34:48,234 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.interceptor.multipart.UploadedFileConverter
23:34:48,234 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.LongConverter
23:34:48,250 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.EnumConverter
23:34:48,250 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.IntegerConverter
23:34:48,250 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.LocaleBasedDateConverter
23:34:48,250 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.PrimitiveCharConverter
23:34:48,250 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.LocaleBasedCalendarConverter
23:34:48,265 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.CharacterConverter
23:34:48,265 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.ByteConverter
23:34:48,265 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.PrimitiveDoubleConverter
23:34:48,265 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.PrimitiveFloatConverter
23:34:48,281 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.PrimitiveBooleanConverter
23:34:48,281 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.StringConverter
23:34:48,281 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.ShortConverter
23:34:48,281 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.FloatConverter
23:34:48,296 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.BigDecimalConverter
23:34:48,296 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.BigIntegerConverter
23:34:48,296 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.PrimitiveShortConverter
23:34:48,296 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.PrimitiveByteConverter
23:34:48,296 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.PrimitiveIntConverter
23:34:48,312 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.DoubleConverter
23:34:48,312 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.PrimitiveLongConverter
23:34:48,312 DEBUG [ConverterHandler ] Ignoring handling default converter class br.com.caelum.vraptor.converter.BooleanConverter
23:34:48,328 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.RequestCustomScope
23:34:48,328 DEBUG [ScopeLifecycleListener] Registering lifecycle listeners for br.com.caelum.vraptor.ioc.guice.SessionCustomScope
23:34:48,328 INFO [VRaptor ] VRaptor 3.3.2-SNAPSHOT successfuly initialized
31/05/2011 23:34:48 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
31/05/2011 23:34:48 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory manager
31/05/2011 23:34:48 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
31/05/2011 23:34:48 org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler [“http-bio-8080”]
31/05/2011 23:34:48 org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler [“ajp-bio-8009”]
31/05/2011 23:34:48 org.apache.catalina.startup.Catalina start
INFO: Server startup in 6626 ms

Lucas_Cavalcanti

essa parte de registrar stereotypeHandlers customizados ainda não está funcionando completamente no guice…

isso pq para pegar uma List de todo mundo que implementa eu preciso criar um multibinding explícito… e só tá implementado o multibinding para as implementações padrão do VRaptor.

por enquanto dá pra contornar assim:

  • crie um customProvider, baseado no Guice:
public class CustomProvider extends GuiceProvider {


    @Override
    protected Module customModule() {
         final Module module = super.customModule();
         return new AbstractModule() {
            @Override
            protected void configure() {
                 binder().install(module);
                 Multibinder<StereotypeHandler> stereotypeHandlers = Multibinder.newSetBinder(binder(), StereotypeHandler.class);
                 stereotypeHandlers.addBinding().to(SeuHandler.class);

            }
         }
}
  • registre esse provider no web.xml:
<context-param>
    <param-name>br.com.caelum.vraptor.provider</param-name>
    <param-value>br.com.caminho.para.CustomProvider</param-value>
</context-param>

isso deve resolver

registra um bug pra corrigir isso no vraptor por favor?


[]'s

wpivotto

Lucas Cavalcanti:
essa parte de registrar stereotypeHandlers customizados ainda não está funcionando completamente no guice…

isso pq para pegar uma List de todo mundo que implementa eu preciso criar um multibinding explícito… e só tá implementado o multibinding para as implementações padrão do VRaptor.

por enquanto dá pra contornar assim:

  • crie um customProvider, baseado no Guice:
public class CustomProvider extends GuiceProvider {


    @Override
    protected Module customModule() {
         final Module module = super.customModule();
         return new AbstractModule() {
            @Override
            protected void configure() {
                 binder().install(module);
                 Multibinder<StereotypeHandler> stereotypeHandlers = Multibinder.newSetBinder(binder(), StereotypeHandler.class);
                 stereotypeHandlers.addBinding().to(SeuHandler.class);

            }
         }
}
  • registre esse provider no web.xml:
<context-param>
    <param-name>br.com.caelum.vraptor.provider</param-name>
    <param-value>br.com.caminho.para.CustomProvider</param-value>
</context-param>

isso deve resolver

registra um bug pra corrigir isso no vraptor por favor?


[]'s

feito…

Lucas_Cavalcanti

valeu =)

Criado 9 de maio de 2011
Ultima resposta 1 de jun. de 2011
Respostas 7
Participantes 2