O documento resume as principais novidades do Java EE 7, incluindo WebSockets, Batch API e Bean Validation 1.1. Apresenta breves introduções a esses tópicos e demonstra exemplos de código.
10. Web Sockets
● Hello world api
import javax.websocket.*;
@ServerEndpoint("/hello")
public class HelloBean {
@OnMessage
public String onMessage(String name) {
return “Hello “ + name;
}
}
17. Batch API
● Introdução a JSR 352
● Conceitos
● Projetando um Job de Download de
Imagens
○ Batchlet
○ Chunk
18. Batch API Introdução JSR 352
● O que é?
○ Processamento batch.
■ Possui muitas caracteristicas em comun
■ Atividade da maioria das aplicações corporativas
● Porque ?
○ Padronização de uma idéia boa.
24. Batch API Batchlet
● Simples, permite maior liberdade de implementação
● Executado apenas uma vez, orientado a tarefa
● Caracteristicas uteis para o mundo real
○ Cópia de arquivos.
○ Enviar emails , gerar um relatório.
○ Disparar querys de update em massa.
25. Mudanças Bean validations 1.1
● Dependency Injection and CDI integration
public class ZipCodeValidator implements ConstraintValidator<ZipCode, String> {
@Inject
private ZipCodeChecker checker;
public void initialize(ZipCode zipCode) {}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value==null) return true;
return checker.isZipCodeValid(value);
}
}
26. Mudanças Bean validations 1.1
● Group Conversion
public class Place {
@Valid
@ConvertGroup.List( {
@ConvertGroup(from=Default.class,
to=Complete.class),
} )
Address address;
}
public class User {
@Valid
Address address;
}
public class Address {
....
@NotNull(groups =Complete.class)
private Double lat;
@NotNull(groups = Complete.class )
private Double long;
}
27. Mudanças Bean validations 1.1
● Message interpolation via the unified
expression language
@DecimalMax(inclusive = true, value = "10.5")
private BigDecimal score;
javax.validation.constraints.DecimalMax.message=
must be less than ${inclusive == true ? 'or equal to ' : ''}{value}
28. Mudanças Bean validations 1.1
● Method Validation
public class UserService {
public User findUserById(@NotNull Long id) {
....
}
public @NotNull List<User> findAll() {
....
}
}
29. Mudanças Bean validations 1.1
● Method Validation
○ Pros
■ Design by Contract
■ Validações declarativas
○ Cons
■ Depende de um provedor de interceptors
■ Herança de validações ainda não funciona muito
bem