Registro componente opicional

13 respostas
Lavieri

@Override protected void registerCustomComponents(ComponentRegistry registry) { registry.registry(SessionCreator.class, SessionCreator.class); registry.registry(SessionFactoryCreator.class, SessionFactoryCreator.class); }

só pra constar, é assim mesmo ??

não é nada como

@Override protected void registerCustomComponents(ComponentRegistry registry) { registry.registry(Session.class, SessionCreator.class); registry.registry(SessionFactory.class, SessionFactoryCreator.class); }

??

sim eu ainda não pude testar… assim que conseguir testar dou retonro se descobrir

13 Respostas

Lavieri

já descobri que é como anotado no exemplo 1

Lucas_Cavalcanti

só uma coisa que tá errada na documentação (e vai ser corrigida hoje): o certo é registry.register(…)

Lavieri
lucascs:
só uma coisa que tá errada na documentação (e vai ser corrigida hoje): o certo é registry.register(...)

true!!!

public class CoreProvider extends SpringProvider {
	
	@Override
	protected void registerCustomComponents(ComponentRegistry registry) {
		registry.register(SessionCreator.class, SessionCreator.class);
		registry.register(EntityManagerCreator.class, EntityManagerCreator.class);
		registry.register(EntityManagerFactoryCreator.class, EntityManagerFactoryCreator.class);
		registry.register(TransactionInterceptor.class, TransactionInterceptor.class);
	}
}

^^ .... consegui fazer o LAZY com meus entityManager e session lucascs \o/ ...

agora ate economizando anotação eu estou.... antes eu tinha uma anotação @DontIjectDaoFactory (no VRaptor 2) .... quando encontrava essa anotação em logica ou componente, eu não criava uma conexão real....

agora eu mando um EntityManger Enchaced que só conecta mesmo quando chama o primeiro método... não preciso mais me preucupar com métodos que não precisam de conexão ^^ .... CGLib muito rox

Lucas_Cavalcanti

Muito bom! =)

Se você quiser escrever uma receita de como vc fez isso, a gente publica no site do VRaptor… e agradece imensamente =)

a seção de cookbooks vai ser inaugurada hoje provavelmente, com receitas de usuários

[]'s

Lavieri

lucascs:
Muito bom! =)

Se você quiser escrever uma receita de como vc fez isso, a gente publica no site do VRaptor… e agradece imensamente =)

a seção de cookbooks vai ser inaugurada hoje provavelmente, com receitas de usuários

[]'s

ok! combinado… vou preparar um texto,

de toda forma, o código fonte esta no grupo de dev do vraptor, com meu pessim inglês mas esta =x

G

^^ … consegui fazer o LAZY com meus entityManager e session lucascs \o/ …

agora ate economizando anotação eu estou… antes eu tinha uma anotação @DontIjectDaoFactory (no VRaptor 2) … quando encontrava essa anotação em logica ou componente, eu não criava uma conexão real…

agora eu mando um EntityManger Enchaced que só conecta mesmo quando chama o primeiro método… não preciso mais me preucupar com métodos que não precisam de conexão ^^ … CGLib muito rox

Lavieri, era isso que eu ia comentar. Ao invés de você SEMPRE trazer a session, traga uma espécie de “lazy-session”. Aliás a especificação EJB não diz nada sobre o entity-manager ser lazy ou não. Creio que as injeções de resources e entity-managers são non-lazy, correto?

Lavieri

garcia-jj:
^^ … consegui fazer o LAZY com meus entityManager e session lucascs \o/ …

agora ate economizando anotação eu estou… antes eu tinha uma anotação @DontIjectDaoFactory (no VRaptor 2) … quando encontrava essa anotação em logica ou componente, eu não criava uma conexão real…

agora eu mando um EntityManger Enchaced que só conecta mesmo quando chama o primeiro método… não preciso mais me preucupar com métodos que não precisam de conexão ^^ … CGLib muito rox

Lavieri, era isso que eu ia comentar. Ao invés de você SEMPRE trazer a session, traga uma espécie de “lazy-session”. Aliás a especificação EJB não diz nada sobre o entity-manager ser lazy ou não. Creio que as injeções de resources e entity-managers são non-lazy, correto?

eram non-lazy ^^ … agora eu crio elas LAZY … ou como prefiro chamar… JIT (Just-in-Time)

G

Desculpe o flood, mas… excelente trabalho, parabéns. E obrigado por compartilhar.

Abraços

Paulo_Silveira

verdade! bom trabalho

sera que ainda precisamos fazer com que o Interceptor seja quebrado em duas interfaces?

G

Paulo Silveira:
verdade! bom trabalho

sera que ainda precisamos fazer com que o Interceptor seja quebrado em duas interfaces?

Mas essa solução do colega não pode entrar como default no vraptor? Há um custo tão grande em ter uma lazy-session/lazy-entitymanager?

Lucas_Cavalcanti

já está no cookbook…

mas dá pra colocar nos utils do vraptor também…

Lavieri

Paulo Silveira:
verdade! bom trabalho

sera que ainda precisamos fazer com que o Interceptor seja quebrado em duas interfaces?

na verdade Paulo, a sugestão escolhida na lista de discução de dev do vraptor acabou ficando em adicionar um opicional a anotação @Intercepts, ficando assim

anotado como true, todas as Dependencias serão injetadas via proxy, com objetos lazy.

segue link da sugestão => http://github.com/caelum/vraptor/issues/#issue/110

Lavieri

observação, um link para a versão inicial de todas as versões que criei estão aqui

http://www.guj.com.br/posts/list/141500.java

posteriormente junto com as sugestões do lucascs, o código foi mudado para fazer uso de algumas classes auxiliares internas do vraptor

Criado 15 de outubro de 2009
Ultima resposta 16 de out. de 2009
Respostas 13
Participantes 4