Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
WS PROXY
GENERATOR
Manual del programador
ST&T Manual del Programador
2
CONTENIDO
AMBIENTE DE DESARROLLO .......................................................................................................... 4
Requisitos de software .............................................................................................................. 4
IDE ......................................................................................................................................... 4
JDK ......................................................................................................................................... 5
Código fuente ............................................................................................................................ 6
ESTRUCTURA DEL PROYECTO ........................................................................................................ 6
Arquitectura .............................................................................................................................. 6
Paquetes .................................................................................................................................... 7
Principal ................................................................................................................................. 7
Excepciones ........................................................................................................................... 7
Componentes nativos de Java ............................................................................................... 8
Logs........................................................................................................................................ 8
Modelos / Entidades ............................................................................................................. 8
Reflection .............................................................................................................................. 9
Recursos ................................................................................................................................ 9
Utilitarios ............................................................................................................................. 10
Validación ............................................................................................................................ 10
Vista ..................................................................................................................................... 10
Escritor ................................................................................................................................ 11
WSDL ................................................................................................................................... 11
Archivo de propiedades .......................................................................................................... 12
ST&T Manual del Programador
3
ÍNDICE DE ILUSTRACIONES
Ilustración 1 Proyecto WSProxyGenerator en el IDE Eclipse ......................................................................... 4 Ilustración 2 Instalación de Maven ............................................................................................................... 5 Ilustración 3 Confirmación de instalación exitosa de Maven ....................................................................... 5 Ilustración 4 Versión JDK .............................................................................................................................. 6 Ilustración 5 Arquitectura ............................................................................................................................. 6 Ilustración 6 Paquetes del proyecto WSProxyGenerator .............................................................................. 7 Ilustración 7 Archivo de propiedades ........................................................................................................... 9 Ilustración 8 Variables estáticas en DynamicLoading .................................................................................. 9 Ilustración 9 Distribución de clases en el paquete de vista......................................................................... 11 Ilustración 10 Archivo de configuración ..................................................................................................... 12
ST&T Manual del Programador
4
AMBIENTE DE DESARROLLO
Requisitos de software
IDE El entorno de desarrollo puede ser seleccionado de acuerdo a la preferencia del desarrollador.
Si bien es posible utilizar Netbeans, el proyecto fue desarrollado en Eclipse, el cual lleva
embebido apache-maven versión 3.5, componente necesario para el compilado del proyecto.
Ilustración 1 Proyecto WSProxyGenerator en el IDE Eclipse Fuente: elaboración propia
ST&T Manual del Programador
5
Ilustración 2 Instalación de Maven Fuente: elaboración propia
Ilustración 3 Confirmación de instalación exitosa de Maven Fuente: elaboración propia
JDK El desarrollador requiere de un equipo que tenga instalado el JDK versión 1.8.0_131. Es
importante aclarar que no basta con el runtime de Java, debido a que el JDK cuenta con un
componente llamado WSImport. Dicho componente es utilizado cuando se interpreta el WSDL,
se obtienen los servicios, operaciones (métodos) y parámetros y se definen las clases con la
definición de los servicios mencionados.
ST&T Manual del Programador
6
Ilustración 4 Versión JDK
Fuente: elaboración propia
Código fuente El enlace del repositorio dispuesto por la empresa ST&T para el control del código fuente de
WSProxyGenerator es un enlace privado, al cual sólo puede acceder personal previamente
autorizado.
Para solicitar acceso, el desarrollador debe contactar al personal encargado (los datos aparecen
al final de este documento).
Una vez se le haya proporcionado el enlace y las credenciales para acceder, el desarrollador
descarga el código fuente que se encuentra en un repositorio SVN, ya sea desde el explorador
de Windows o desde los componentes adicionales de sincronización del IDE utilizado, ya sea
Eclipse o Netbeans.
ESTRUCTURA DEL PROYECTO
Arquitectura
La arquitectura utilizada para el desarrollo de la herramienta CASE WSProxyGenerator es
multinivel o multicapas, ya que se ha dividido en una capa de presentación, negocio y modelo.
La capa de negocio se ha distribuido en diferentes paquetes.
Ilustración 5 Arquitectura
Fuente: elaboración propia
ST&T Manual del Programador
7
Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la capa representada, a fin de
proporcionar código fuente legible y fácil de mantener. La nomenclatura corresponde al dominio
de la empresa ST&T y el nombre del proyecto WSProxyGenerator. Si se desean agregar otros
paquetes, se debe utilizar esta nomenclatura para dar continuidad a los estándares asignados.
Ilustración 6 Paquetes del proyecto WSProxyGenerator Fuente: elaboración propia
Principal co.com.stt.wsproxygenerator
Es el paquete donde se encuentra la clase principal para la ejecución del proyecto, el
cual puede ser ejecutado desde una de las 2 clases proporcionadas.
WSProxyGenerator: ejecución donde se proporcionan los parámetros de entrada a
través de configuración estática (definida por el desarrollador).
WSProxyGeneratorFrame: proporciona la vista (formulario) para interacción con el
usuario.
Excepciones co.com.stt.wsproxygenerator.exception
Representa el manejador de excepciones para controlar los errores técnicos o de
negocio, y proporciona mayor información para posterior corrección de bugs.
WSProxyGeneratorException: contiene una lista de errores (List<String> errors) en
la cual se registran todos los errores que se puedan presentar en una acción, por
ejemplo, en el formulario de ingreso de datos pueden faltar 2 o más campos por
diligenciar. Para agregar errores a esta lista, se utiliza el método addError(mensaje).
ST&T Manual del Programador
8
Componentes nativos de Java co.com.stt.wsproxygenerator.java
Definición de tipos de datos nativos para y herramienta WSImport.
NativeVariables: se definen propiedades estáticas para representar los nombres de
los tipos de datos nativos, los cuales se requieren para diferenciar los parámetros
de tipo complejo (definidos por el usuario).
WSImport: proporciona el método que permite ejecutar el componente WSImport
del JDK para la generación de las clases del cliente proxy.
Logs co.com.stt.wsproxygenerator.log
Registro de información adicional para identificar errores y el detalle de los mismos para
su posterior corrección.
Logger: clase a través de la cual se ejecutan los registros de información, advertencia
(warning) o error.
WSProxyGeneratorAppender: define la implementación de un Appender específico
del proyecto sobre el cual se sobrescribe la funcionalidad del método [setFile] para
que se cree en su totalidad el directorio de salida de escritura del log. Lo anterior es
para el caso en el que dicha ruta no exista en el sistema operativo.
Modelos / Entidades co.com.stt.wsproxygenerator.model
Representa las diferentes entidades que se utilizan para la interpretación del
documento de descripción (WSDL) solicitado.
WSArguments: representa los argumentos requeridos para ejecutar la
interpretación del WSDL, donde se solicita la url del WSDL, nombre del paquete de
las clases a generar y directorio donde se almacenarán.
WSFinalProxy: abstracción del cliente proxy generado, el cual se encuentra sujeto a
los cambios que el usuario realice en la ventana de estructura del WSDL.
WSMethod: representa las operaciones expuestas en los servicios encontrados en
los WSDL.
WSParameter: representa los parámetros que hacen parte de las operaciones
encontradas.
WSService: servicio identificado en el WSDL. Se pueden encontrar 1 o más servicios
en un mismo WSDL.
WSServiceFactory: clase que provee funcionalidad a través de la cual se implementa
patrón de diseño Factory.
WSServices: clase que contiene lista de los servicios encontrados al realizar la
lectura del WSDL.
ST&T Manual del Programador
9
Reflection co.com.stt.wsproxygenerator.reflect:
Contiene las clases que utilizan las propiedades de reflexión de java para la lógica de
negocio.
DynamicLoading: Clase que se encarga de sincronizar los parámetros que se
encuentran en el archivo de propiedades [config.properties] con las variables
estáticas definidas en la clase
Ilustración 7 Archivo de propiedades Fuente: elaboración propia
La sincronización únicamente se realiza para los parámetros que empiecen con
el prefijo “P_”. Este prefijo se puede parametrizar por medio de la constante
[LOAD_PROPERTIES_PREFIX]. Se debe tener en cuenta que definir un nuevo
prefijo requeriría la actualización manual de los parámetros que ya empiecen
con el prefijo anterior (en este caso “P_”).
Para que la sincronización de datos funcione adecuadamente, se debe tener en
cuenta que la declaración de las variables con el prefijo “P_” (prefijo de ejemplo,
debe coincidir con PROPERTIES) y deben ser declaradas como públicas y
estáticas, ejemplo:
Ilustración 8 Variables estáticas en DynamicLoading Fuente: elaboración propia
Recursos co.com.stt.wsproxygenerator.resources:
Contiene las clases relacionadas con los recursos del proyecto. Los recursos del proyecto
abarcan, archivos de configuración con formatos (.xml, .properties, entre otros). En este
paquete se define el acceso a dichos archivos.
Resources: Permite la lectura del archivo config.poperties, así mismo permite la
edición del mismo (esta característica es ya es utilizada automáticamente por la
clase DynamicLoading).
ST&T Manual del Programador
10
Utilitarios co.com.stt.wsproxygenerator.util
Contiene clases con funciones generales y definición de variables estáticas a nivel de
desarrollo de software. Se pueden encontrar funcionalidades como lectura, escritura de
archivos, conversión de objetos a String y búsqueda de nodos XML de la librería
org.w3c.dom.
Conf: contiene variables de configuración estáticas, las que empiezan con el prefijo
“P_” se cargan dependiendo del valor de la propiedad en el archivo conf.properties
FileUtil: permite creación de directorios, lectura y escritura de archivos.
StringUtil: convierte objetos a string siguiendo la normativa necesaria en la
aplicación.
XMLUtil: permite encontrar nodos y atributos de un XML embedido en el objeto
Node de la librería org.w3c.jdom
Validación co.com.stt.wsproxygenerator.validate
Contiene las clases para realizar las validaciones sobre la lógica de negocio, lo cual se
centra en los argumentos para ejecutar la interpretación (WSDL, directorio y paquete).
MyTrustManager: clase encargada de validar certificaciones de seguridad del
protocolo HTTPS, lo cual es requerido para el consumo de servicios web expuestos
bajo este protocolo.
WSValidator: validador exclusivo de los argumentos principales para la ejecución
de la interpretación.
Vista co.com.stt.wsproxygenerator.view
Muestra formularios para brindar la posibilidad de interacción con el usuario, el cual
puede modificar los argumentos de entrada para ejecutar la interpretación de varios
WSDL y su respectiva generación de clases.
DirectoryChooserFrame: ventana que se muestra para que el usuario seleccione
una carpeta (directorio) en su equipo. (Selector de directorios).
ImagePanel: provee funcionalidad para asignar una imagen de fondo al frame de la
ventana principal.
MainFrame: ventana principal, donde se solicita el WSDL, directorio y paquete
como campos obligatorios.
PlaceholderTextField: permite utilizar un “placeholder” en las cajas de texto para
informar al usuario la propiedad que representa. En su lugar, también se pueden
utilizar etiquetas al lado de los campos.
PreviewFrame: ventana que muestra un menú de navegación donde cada pestaña
representa una clase, la cual contiene una caja de texto con la clase generada. Esta
ST&T Manual del Programador
11
está sujeta a los cambios que realice el usuario en la ventana anterior (estructura
de WSDL).
TreeFrame: muestra un árbol de nodos que despliega los servicios, operaciones
(métodos) y parámetros para que el usuario pueda editar/eliminar.
TreeOption: nodos del árbol del TreeFrame. Dependiendo del nivel, un nodo
representa un servicio, operación (método) o parámetro.
TreePopup: muestra un menú contextual que habilita opciones de edición o
eliminación de acuerdo al nivel del nodo.
Ilustración 9 Distribución de clases en el paquete de vista Fuente: elaboración propia
Escritor co.com.stt.wsproxygenerator.writer
Contiene la clase encargada de la escritura del proxy final generado a partir de la lectura
del WSDL y las posibles modificaciones que realice el usuario en la ventana de estructura
del WSDL.
WSWriter: la clase provee métodos y propiedades para imprimir el proxy final en
dos lugares:
o TextArea de la vista previa: caja de texto donde se previsualiza la(s) clase(s).
o Archivo en directorio: se crea o reemplaza el archivo que contiene la(s)
clase(s).
La(s) clase(s) generadas representan cada uno de los servicios encontrados en el
WSDL.
WSDL co.com.stt.wsproxygenerator.wsdl
En este paquete se definen las clases utilizadas para le lectura del formato de los WSDL,
teniendo en cuenta la estructura y el origen del servicio expuesto, ya sea Axis o Jax-WS.
WSDLTags: contiene propiedades estáticas de tipo string que representan los
atributos de los elementos xml para la descripción de los servicios web.
XMLSchema: define el marco para diferenciar los formatos de los servicios web
Axis y los de Jax-WS.
ST&T Manual del Programador
12
Archivo de propiedades
Ilustración 10 Archivo de configuración Fuente: elaboración propia
Bajo el directorio de propiedades, se encuentra un archivo de configuración (config.properties)
donde se almacenan los valores de unos parámetros generales iniciales para la aplicación.
Dentro de los principales para la interacción con el usuario, se encuentran:
BACKGROUND_IMAGE_ID (int): indica el id de la imagen que se utiliza como fondo para
la aplicación, la cual se obtiene de la lista de imágenes en el directorio “images”.
P_WSDL (string): cadena que contiene diferentes ítems separados por “;”. Estos ítems
representan los enlaces de los últimos WSDL ingresados por el usuario.
P_WSDL_LIMIT (int): indica el límite de direcciones del WSDL que se van a almacenar y
cargar en la lista desplegable de la ventana principal. El valor por defecto es 10.
P_PACKAGE (string): nombre por defecto del paquete que se va a utilizar para las clases
generadas en el cliente proxy.
ST&T Manual del Programador
13
WS PROXY
GENERATOR
Manual del programador
2017
Gerente de Desarrollo Juan Carlos Lozano Lozano
Ingeniero de Desarrollo Juan Sebastián Cruz Mora
Ingeniera de Desarrollo Liliana Loaiza Pulgarín