13
WS PROXY GENERATOR Manual del programador

WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

WS PROXY

GENERATOR

Manual del programador

Page 2: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

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

Page 3: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

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

Page 4: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

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

Page 5: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

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.

Page 6: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

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

Page 7: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

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).

Page 8: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

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.

Page 9: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

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).

Page 10: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

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

Page 11: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

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.

Page 12: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

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.

Page 13: WS PROXY GENERATORrepository.udistrital.edu.co/bitstream/11349/6781/3... · ST&T Manual del Programador 7 Paquetes La distribución de los paquetes ha sido asignada de acuerdo a la

ST&T Manual del Programador

13

WS PROXY

GENERATOR

Manual del programador

2017

Gerente de Desarrollo Juan Carlos Lozano Lozano

[email protected]

Ingeniero de Desarrollo Juan Sebastián Cruz Mora

[email protected]

Ingeniera de Desarrollo Liliana Loaiza Pulgarín

[email protected]