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

VRaptor4 & plugins