Validación de beans en módulos RAR

WebSphere Application Server valida las restricciones de JavaBeans de RAR (archivo de adaptador de recursos) de conformidad con la especificación JCA (Java™ Connector Architecture) versión 1.6.

Los adaptadores de recursos pueden especificar los requisitos de validación de las propiedades de configuración al servidor de aplicaciones mediante anotaciones en el código fuente del adaptador de recursos, especificaciones de restricción en un descriptor de validación de adaptador de recursos o una combinación de ambas. En la especificación de estas restricciones, los adaptadores de recursos pueden utilizar las restricciones de validación de beans integradas proporcionadas con el servidor de aplicaciones, las restricciones de validación de beans personalizadas proporcionadas por el desarrollador de aplicaciones o un tercero o una combinación de ambas. Los desarrolladores de adaptadores de recursos pueden aplicar restricciones a los campos y propiedades compatibles con JavaBeans de los siguientes tipos de JCA:
  • ResourceAdapter
  • ManagedConnectionFactory
  • ActivationSpec
  • AdministeredObject
En tiempo de ejecución, el servidor de aplicaciones crea instancias de tipos de bean declarados por el adaptador de recursos. Cada instancia se valida inmediatamente después de establecer sus propiedades de configuración, antes de poner en servicio la instancia.

Al validar un bean RAR, el servidor de aplicaciones crea una instancia de una fábrica de validadores de acuerdo con el descriptor de despliegue de validación de beans descubierto por el servidor de aplicaciones. Luego, se obtiene una instancia de validador de la fábrica y se utiliza para validar la instancia del bean.

Si la validación falla, el servidor de aplicaciones genera una excepción de violación de restricción e informa de todas las violaciones en el registro del sistema. Los efectos de la excepción para cada tipo de bean RAR y la información de determinación de problemas se describen en el tema Resolución de problemas de validación de beans en módulos RAR.
Avoid trouble Avoid trouble: La especificación de Validación de Beans requiere que no haya más de un validation.xml visible en la vía de acceso de clases. Se infringe este requisito cuando dos o más RAR autónomos proporcionan un descriptor de validación. Consulte la sección "Descriptor de validación de bean RAR" en este tema para obtener más información. Cuando hay más de un validation.xml visible para los cargadores de clases del servidor de aplicaciones, es posible que el servidor de aplicaciones o los módulos de aplicación no pudieran adquirir el ValidatorFactory predeterminado y posteriormente no pudieran realizar la validación de beans. Por ejemplo, el servidor no puede validar los beans de un RAR incorporado en una aplicación si el RAR incorporado carece de una configuración de validación, y dos o más RAR autónomos proporcionan configuraciones. Para evitar problemas, instale RAR autónomos que proporcionen un descriptor de validación de beans tan aislado que sea posible. gotcha

Anotaciones de restricción incorporadas

Best practice Best practice: Utilice las anotaciones de restricción incorporadas para especificar el rango y los atributos obligatorios de las propiedades de configuración en lugar de proporcionar anotaciones personalizadas con el mismo propósito. Las restricciones siguientes son útiles, pero puede utilizar todas las restricciones incorporadas de validación de beans. Consulte el tema Restricciones incorporadas de validación de beans para ver una lista completa de las restricciones.bprac
  • @Min

    Especifica el valor mínimo de la propiedad de configuración decorada con esta anotación. El valor debe ser mayor o igual que el mínimo especificado.

  • @Max

    Especifica el valor máximo de la propiedad de configuración decorada con esta anotación. El valor debe menor o igual que el máximo especificado.

  • @Size

    Especifica el rango de valores de la propiedad de configuración decorada con esta anotación. El valor debe ser mayor o igual que el mínimo especificado y ser menor o igual que el máximo especificado.

  • @NotNull

    Especifica que el valor de la propiedad de configuración decorada con esta anotación no debe ser nulo. Es decir, la propiedad es necesaria.

El ejemplo siguiente es una clase de bean RAR que se decora con anotaciones de restricción incorporadas.

El valor de la propiedad de configuración serverName no debe ser nulo y el valor de la propiedad instanceCount debe ser al menos 1 cuando el servidor de aplicaciones crea y configura una instancia de la clase MyConnector. De lo contrario, se produce una excepción de validación de restricción y, en el caso del bean ResourceAdapter, el adaptador de recursos no se inicia. Consulte el tema Resolución de problemas de validación de beans en módulos RAR para obtener más información.

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;}
	…

Descriptor de validación de bean RAR

Se pueden declarar restricciones de validación de beans mediante un descriptor XML proporcionado por un módulo RAR. En el caso más simple, un descriptor de validación RAR consiste en la configuración de validación declarada en el archivo validation.xml y cero o más archivos XML que declaran restricciones de validación de beans RAR. Los archivos que contienen declaraciones de restricciones se especifican en los elementos constraint-mapping de la configuración de validación (validation.xml).

Debe empaquetar el descriptor de validación en el directorio META-INF de un módulo RAR. Cualquier clase de anotación de restricción personalizada declarada en el descriptor de validación también se debe empaquetar en el módulo RAR.

El ejemplo siguiente es un descriptor de validación RAR simple que declara metadatos de restricción como el código que se muestra en la sección "Anotaciones de restricción incorporadas".

<?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>
El archivo XML de restricciones también se encuentra en el directorio META-INF y es parecido al siguiente:
<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>El valor no es nulo</message>
		</constraint>
	</field>
	<field name="instanceCount">
		<valid/>
		<!-- @Min(1) -->
		<constraint annotation="javax.validation.constraints.Min">
				<message>El valor mínimo posible es 1</message>
				<element name="value">1</element>
			</constraint>
		</field>
	</bean>
<constraint-mapping>
El módulo RAR empaquetado, MyResourceAdapter.rar, es similar al siguiente:
my/
  company/
    MyConnector.class
. . .
META-INF
  /validation.xml
  /constraints.xml

Validación de beans de terceros

WebSphere Application Server admite la utilización de diversas implementaciones de validación de beans. Si un adaptador de recursos requiere una implementación de validación bean diferente de la implementación que proporciona el producto y el archivo RAR proporciona la implementación de validación de beans, debe empaquetar el archivo JAR que contiene la implementación de validación de beans en el directorio raíz del módulo RAR.

El módulo RAR también debe contener un descriptor de configuración de validación único (validation.xml), que se puede empaquetar en el directorio META-INF del módulo RAR o en el directorio META-INF/services del archivo JAR de validación de bean, pero no ambos.

Descubrimiento de la configuración de validación de beans RAR

Al validar beans RAR, el servidor de aplicaciones ejecuta el programa de arranque de la configuración de validación de beans, que es específico del archivo RAR, según el descriptor de validación de beans proporcionado en el directorio META-INF del RAR. Si el descriptor no existe, el servidor ejecuta el programa de arranque de la configuración utilizando el primer descriptor de validación descubierto en el contexto de carga de clases RAR, como por ejemplo el proporcionado en la validación de un bean de terceros empaquetado en el RAR. Por último, el servidor utiliza la configuración de validación predeterminada proporcionada por el producto.

A continuación, el servidor crea una fábrica de validadores específica de la configuración de validación de beans descubierta y utiliza esta fábrica para crear instancias de validación para validar las instancias de bean RAR. Al desplegar un archivo RAR que proporciona un descriptor de validación de beans, debe realizar pasos adicionales para asegurarse de que el cargador de clases que carga el archivo RAR cargue el descriptor de validación de beans y las clases empaquetadas en el archivo RAR.

Para un archivo RAR incorporado, después de haber desplegado la aplicación que incluye el archivo RAR, debe establecer la modalidad de delegación del cargador de clases de aplicación en Padre último (Hijo primero). Consulte el tema Configuración de cargadores de clases de aplicaciones para obtener más información.

Para un archivo RAR autónomo, debe instalar el archivo RAR como un proveedor de recursos aislado. Consulte el tema sobre los valores del adaptador de recursos para obtener más información.


Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cdat_rarbeabval
File name: cdat_rarbeabval.html