Validação de Bean em Módulos RAR
O WebSphere Application Server valida restrições de JavaBeans de Resource Adapter Archive (RAR) em conformidade com a especificação Java™ Connector Architecture (JCA) versão 1.6.
- ResourceAdapter
- ManagedConnectionFactory
- ActivationSpec
- AdministeredObject
Ao validar um bean RAR, o Application Server cria uma instância de um factory de validador de acordo com o descritor de implementação de bean descoberto pelo Application Server. Uma instância do validador é obtida do factory e usada para validar a instância de bean.

Anotações de Restrição Integrada

- @Min
Especifica o valor mínimo da propriedade de configuração decorada com esta anotação. O valor deve ser maior que ou igual ao mínimo especificado.
- @Max
Especifica o valor máximo da propriedade de configuração decorada com esta anotação. O valor deve ser menor que ou igual ao máximo especificado.
- @Size
Especifica o intervalo de valores da propriedade de configuração decorada com esta anotação. O valor deve ser maior que ou igual ao mínimo especificado e menor que ou igual ao máximo especificado.
- @NotNull
Especifica que o valor da propriedade de configuração decorada com esta anotação não deve ser nulo. Ou seja, a propriedade é necessária.
O exemplo a seguir é uma classe de bean RAR decorada com as anotações de restrição integrada.
O valor da propriedade de configuração serverName não deve ser nulo, e o valor da propriedade instanceCount deve ser pelo menos 1 quando o Application Server cria e configura uma instância da classe MyConnector. Caso contrário, uma exceção de validação de restrição ocorre e, no caso de um bean ResourceAdapter, o adaptador de recursos falha ao iniciar. Consulte o tópico Resolvendo Problemas de Validação de Bean em Módulos RAR para obter mais informações.
package com.my.company;
@Connector(…)
public class MyConnector implements ResourceAdapter, Serializable
{
@ConfigProperty(type=java.lang.String.class,defaultValue="WAS")
private String serverName;
@NotNull()
public String getServerName() {return serverName;}
private Integer instanceCount = 0;
@Min(value=1)
public Integer getInstanceCount() {return instanceCount;}
…
Descritor de Validação de Bean de RAR
As restrições de validação de bean podem ser declaradas por meio de um descritor XML fornecido por um módulo RAR. No caso mais simples, um descritor de validação de RAR consiste na configuração de validação declarada no arquivo validation.xml e zero ou mais arquivos XML que declaram restrições de validação de bean de RAR. Os arquivos contendo declarações de restrição são especificados nos elementos constraint-mapping da configuração de validação (validation.xml).
Você deve empacotar o descritor de validação no diretório META-INF de um módulo RAR. Quaisquer classes de anotação de restrição customizada que são declaradas no descritor de validação também devem ser empacotadas no módulo RAR.
O exemplo a seguir é um descritor de validação RAR simples que declara metadados de restrição como o código mostrado na seção "Anotações de restrição integrada".
<?xml version="1.0" encoding="UTF-8"?>
<validation-config
xmlns=http://jboss.org/xml/ns/javax/validation/configuration
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://jboss.org/xml/ns/javax/validation/configuration validation-configuration-1.0.xsd>
<constraint-mapping>META-INF/constraints.xml</constraint-mapping>
</validation-config>
<constraint-mappings
xmlns=http://jboss.org/xml/ns/javax/validation/mapping
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://jboss.org/xml/ns/javax/validation/mapping validation-mapping-1.0.xsd>
<default-package>com.my.company</default-package>
<bean class="MyConnector" ignore-annotations="true">
<field name="serverName">
<valid/>
<!-- @NotNull() -->
<constraint annotation="javax.validation.constraints.NotNull">
<message>Value is not null</message>
</constraint>
</field>
<field name="instanceCount">
<valid/>
<!-- @Min(1) -->
<constraint annotation="javax.validation.constraints.Min">
<message>Minimum possible value is 1</message>
<element name="value">1</element>
</constraint>
</field>
</bean>
<constraint-mapping>
O módulo RAR compactado, MyResourceAdapter.rar,
é semelhante ao seguinte:my/
company/
MyConnector.class
. . .
META-INF
/validation.xml
/constraints.xml
Validação de Bean de Terceiros
O WebSphere Application Server suporta o uso de diferentes implementações de validação de bean. Se um adaptador de recursos exigir uma implementação de validação de bean diferente da implementação fornecida pelo produto, e o RAR fornecer a implementação de validação de bean, você deverá empacotar o arquivo JAR que contém a implementação de validação de bean no diretório-raiz do módulo RAR.
O módulo RAR também deve conter um descritor de configuração de validação único (validation.xml), que pode ser compactado em um diretório META-INF do módulo RAR ou no diretório META-INF/services do arquivo JAR de validação do bean, mas não em ambos.
Descoberta de Configuração de Validação de Bean de RAR
Ao validar beans de RAR, o Application Server faz a autoinicialização da configuração de validação de bean, específica do RAR, de acordo com o descritor de validação de bean fornecido no diretório RAR META-INF. Se o descritor não existir, o servidor fará a autoinicialização da configuração usando o primeiro descritor de validação descoberto no contexto de carregamento da classe do RAR, como aquele fornecido em uma validação de bean de terceiros que é empacotado no RAR. Finalmente o servidor usa a configuração de validação padrão fornecida pelo produto.
O servidor então cria um factory de validador específico para a configuração de validação do bean descoberto e usa este factory para criar instâncias do validador para validar as instâncias de bean de RAR. Ao implementar um RAR que fornece um descritor de validação de bean, você deve executar etapas adicionais para garantir que o carregador de classes que carrega o RAR carregue o descritor de validação de bean e as classes empacotadas no RAR.
Para um RAR integrado, após implementar o aplicativo que integra o RAR, você deve configurar o modo de delegação do carregador de classes de aplicativo para Pai-Último (Filho-Primeiro). Consulte o tópico Configurando Carregadores de Classes de Aplicativo para obter mais informações.
Para um RAR independente, você deve instalar o RAR como um provedor de recursos isolado. Consulte o tópico Configurações de Adaptador de Recursos para obter informações adicionais.