VRaptor4 & plugins

952 views

Published on

Aprenda a como encontrar, usar e construir novos plugins utilizando o VRaptor4!

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
952
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
28
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

VRaptor4 & plugins

  1. 1. VRaptor 4 & Plugins
  2. 2. Leonardo Wolter github.com/leocwolter leonardo.wolter@caelum.com.br
  3. 3. github.com/leocwolter
  4. 4. O que é o VRaptor?
  5. 5. Existe de monte! Mas framework MVC
  6. 6. Extensível Customizável &
  7. 7. AdminController/paga-muito-dinheiro
  8. 8. AdminController/admin/paga-muito-dinheiro
  9. 9. /admin/paga-muito-dinheiro AdminController SÓ ADMINS
  10. 10. Seu plugin
  11. 11. Existem MUITOS!
  12. 12. Antes de criar, Pesquise! github.com/caelum/vraptor-contrib vraptor.org/en/docs/plugins
  13. 13. ErrorControl SimpleMailEnvio de email {
  14. 14. ErrorControl SimpleMail Hibernate JPA Envio de email Controle de { Transações {
  15. 15. ErrorControl SimpleMail Hibernate JPA Routes Brutauth Envio de email Controle de { Transações { Controle de Rotas {
  16. 16. LEGAL. E COMO EU USO UM?
  17. 17. Autorização com VRaptor-Brutauth! github.com/caelum/vraptor-brutauth
  18. 18. 1 Vraptor-contrib
  19. 19. 2 Versão mais Atual
  20. 20. 2 Versão mais Atual
  21. 21. 3 DependênciaPOM.xml <dependency> <groupId>br.com.caelum.vraptor</groupId> <artifactId>vraptor-brutauth</artifactId> <version>4.0.0.Final</version> </dependency>
  22. 22. 1 Vraptor-contrib 2 Versão mais Atual 3 DependênciaPOM.xml
  23. 23. 1 Crie uma regra public class LoginRule implements CustomBrutauthRule{ @Inject private Sessao sessao; public boolean isAllowed() { return sessao.estaLogado(); } }
  24. 24. 2 Anote sua action @CustomBrutauthRules(LoginRule.class) public void adicionaForm() {}
  25. 25. 1 Crie uma regra 2 Anote sua action
  26. 26. 3 Teste!
  27. 27. VALIDAÇÃO COM SIMPLE-VALIDATOR github.com/caelum/vraptor-simple-validator
  28. 28. REPITA!
  29. 29. 1 Vraptor-contrib REPITA!
  30. 30. 1 Vraptor-contrib 2 Versão mais Atual REPITA!
  31. 31. 1 Vraptor-contrib 2 Versão mais Atual 3 DependênciaPOM.xml REPITA!
  32. 32. 1 Injete SimpleValidator @Inject private final SimpleValidator validator;
  33. 33. 2 Valide seu campo validator.validate(contato.getNome(), ValidationStrategies.lengthBiggerThan(4L))
  34. 34. 3 Confirmação validator.validate(contato.getNome(), ValidationStrategies.lengthBiggerThan(4l)) .onSuccessAddConfirmation(“contato.adicionado”);
  35. 35. 4 Para onde ir? validator.validate(contato.getNome(), ValidationStrategies.lengthBiggerThan(4l)) .onSuccessAddConfirmation(“contato.adicionado”, contato.getNome()); .onErrorRedirectTo(this).adicionaForm();
  36. 36. 5 Message.properties ValidationStrategies.lengthBiggerThan = O campo precisa ter mais de {0} caracteres! validator.validate(contato.getNome(), ValidationStrategies. lengthBiggerThan(4l))
  37. 37. 5 Message.properties contato.adicionado = O contato foi adicionado com sucesso! .onSuccessAddConfirmation(“contato.adicionado”);
  38. 38. 1 Injete SimpleValidator 2 Valide seu campo 3 Mensagem de confirmação(opcional) 4 Para onde ir se der erro? 5 Messages.properties
  39. 39. 6 Teste!
  40. 40. :) EU QUERO FAZER U PLUGIN
  41. 41. PHP é mais rápido!
  42. 42. SOLUÇÃO PROVISÓRIA PERMANENTE
  43. 43. http://localhost:8080/index.php
  44. 44. http://localhost:8080/index.php
  45. 45. /admin/paga-muito-dinheiro AdminController
  46. 46. /paga-muito-dinheiro.php
  47. 47. GAMBS PERMANENTE VRAPTOR-PHPFIER
  48. 48. 1 vraptor.org/javadoc Qual classe sobrescrever? && github.com/caelum/vraptor4
  49. 49. 2 Extenda a classe! public class PhpfierRouter extends PathAnnotationRoutesParser{}
  50. 50. 3 Fale para o CDI! @Specializes public class PhpfierRouter extends PathAnnotationRoutesParser{}
  51. 51. 4 Delegue o construtor! @Inject public PhpfierRouter(Router router) { super(router); }
  52. 52. @Override protected String defaultUriFor(...) { return super.defaultUriFor(...)+".php"; } 5 Sobrescreva o método!
  53. 53. 6 Teste!
  54. 54. 7 Extraia!
  55. 55. 8 beans.xml!
  56. 56. 9 Dependencia!
  57. 57. Leonardo Wolter github.com/leocwolter leonardo.wolter@caelum.com.br OBRIGADO!

×