Download Instalación y uso del entorno de pruebas
Document related concepts
no text concepts found
Transcript
Instalación y uso del entorno de pruebas Antonio García Domínguez 9 de enero de 2008 Índice Índice 1 1. Instalacion del entorno escogido 2 1.1. Máquina virtual Java 6 o superior de Sun 1.2. Contenedor de servlets: Apache Tomcat . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . 3 1.3. Director del proceso de empaquetado y pruebas: Apache Ant 1.7.0 1.4. Motor BPEL: ActiveBPEL 4.1 modicado . . . . . . . . . . . . . . . . . . 3 1.5. Entorno de pruebas de unidad para BPEL: BPELUnit 1.0 modicado . . . 4 1.6. Editor BPEL: NetBeans v6.0 . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.7. IDE Java: Eclipse v3.3.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . . . . 3 1.7.1. Generador de analizadores sintácticos: JavaCC 4.0 y JJTree 1.3.2 . . . . . . . . . . . . . . . . . . 5 1.7.2. Pruebas de unidad para tareas Ant: AntUnit v1.0 . . . . . . . . . . 6 1.7.3. Editor BPEL: Eclipse BPEL Project . . . . . . . . . . . . . . . . . 7 1.7.4. Importación de proyectos existentes 7 en Eclipse JavaCC Plug-in v1.5.10 2. Uso del autoinstrumentador . . . . . . . . . . . . . . . . . 7 1 1. Instalacion del entorno escogido A nivel general, añadiremos ${HOME}/bin a nuestro PATH, para situar en dicha ruta los diversos guiones que nos van a ser de ayuda. Si usamos el shell la siguiente línea a ${HOME}/.bashrc: bash, basta con añadir export PATH=${PATH}:~/bin También necesitaremos los paquetes necesarios para compilar programas escritos en C y C++, los paquetes de las autotools y las herramientas cvs y patch. He supuesto que el archivo de distribución con todo lo necesario ha sido descomprimido a /tmp. Instalaremos a continuación las dependencias del proyecto, que a fecha de hoy (6/12/07) son: 1.1. Máquina virtual Java 6 o superior de Sun En teoría todo debería funcionar ya con el JRE 5, pero BPELUnit da fallos de espacios de nombres de esa forma. Para instalar la máquina virtual Java, es mejor instalar el paquete especíco de la distribución. Para Ubuntu, basta con: sudo aptitude install sun-java6-jdk sun-java6-bin Otras distribuciones seguirán un proceso similar. Hay que asegurarse de que las variables de entorno JAVA_HOME y JDK_HOME estén debidamente conguradas: set | grep JAVA_HOME set | grep JDK_HOME Si en alguno de los casos no aparece nada, deberemos añadir la línea correspondiente de estas dos (el valor variará si se usa una distribución distinta de Ubuntu): export JAVA_HOME=/usr/lib/jvm/java-6-sun export JDK_HOME=/usr/lib/jvm/java-6-sun Habremos de asegurarnos de que realmente se esté usando el JRE de Sun y no el GCJ, que Ubuntu usa por defecto. Para ello, ejecutaremos: sudo update-alternatives --config java Introduciremos el número de la opción que contenga 2 java-6-sun y pulsaremos Intro. 1.2. Contenedor de servlets: Apache Tomcat En el caso de Tomcat, existen paquetes, pero recomiendo evitarlos: el de Ubuntu, por ejemplo, no funciona bien con ActiveBPEL. Es mejor descargar la versión Core de la web http://apache.rediris.es/tomcat/tomcat-5/v5.5.25/bin/apache-tomcat-5. 5.25.zip. Descomprimiremos el ZIP al directorio ${HOME}/bin/tomcat5. Una vez hecho esto, entraremos a su subdirectorio bin, y compilaremos la herramienta jsvc , con la que ocial: podremos iniciar o parar el servidor fácilmente: tar xzf jsvc.tar.gz cd jsvc-src chmod +x configure ./configure && make cp jsvc .. Situaremos la ruta a Tomcat en la variable de entorno línea a ${HOME}/.bashrc si empleamos el shell bash : CATALINA_HOME, añadiendo esta export CATALINA_HOME=~/bin/tomcat5 Copiaremos el guión Tomcat5.sh en ${HOME}/bin, cuidando de cambiar TOMCAT_USER a nuestro nombre de usuario. Para levantar o echar abajo el servidor, bastará respectivamente con: Tomcat5.sh start Tomcat5.sh stop Si deseamos comprobar si Tomcat efectivamente funciona, visitaremos la dirección http://localhost:8080/. Debería de aparecer la página de prueba de Tomcat. 1.3. Director del proceso de empaquetado y pruebas: Apache Ant 1.7.0 Este programa se ocupará de gestionar la ejecución de varios conjuntos de pruebas y el empaquetado de los procesos en cheros BPR, usando cheros Ant. Sigue la misma losofía que el conocido GNU Make. En Ubuntu basta con instalar el paquete ant. Otras distribuciones seguirán un proceso similar. 1.4. Motor BPEL: ActiveBPEL 4.1 modicado Puesto que he modicado partes del motor BPEL, no sirve con descargar la versión binaria. Hay que descargar el código fuente de ActiveBPEL 4.1 de http://www. active-endpoints.com/download-terms-conditions.htm (habremos de aceptar las condiciones de ActiveBPEL), y lo descomprimiremos bajo ${HOME}/src, aprovechando para crear una copia limpia: 3 mkdir ~/src cd src tar xzf ruta a las fuentes /activebpel-4.1-src.tar.gz cp -r activebpel-4.1 activebpel-4.1.orig cd activebpel-4.1 zless /tmp/dist-entorno/ActiveBPEL_delta_4.1.diff.gz | patch -p0 chmod +x *.sh Esto modicará el código debidamente y añadirá tres cheros al directorio actual: aeEngineConfig.xml con la conguración que usaremos, recompilar.sh para (re)compilar y (re)instalar ActiveBPEL (junto con la función XPath inspeccionar ), y generarDiferencias.sh para generar las diferencias con el árbol sin modicaciones que antes creamos. Tras cambiar las variables CATALINA_USER y CATALINA_GROUP de recompilar.sh a nuestro grupo y usuario, lo ejecutaremos: ./recompilar.sh http://localhost:8080/BpelAdmin. Full, con lo que podremos examinar el ujo de ejecución de los procesos BPEL simplemente mirando los cheros .log en ${CATALINA_HOME}/AeBpelEngine/process-logs, y los mensajes de despliegue de procesos en el directorio hermano deployment-logs. Comprobaremos si todo va bien visitando la dirección La conguración instalada usará nivel de auditoría 1.5. Entorno de pruebas de unidad para BPEL: BPELUnit 1.0 modicado Al igual que con ActiveBPEL, he modicado BPELUnit, así que habrá que usar las fuentes, parchearlas y compilar. Primero necesitaremos la biblioteca XMLBeans 2.1.0 http://ftp.udc.es/apache-dist/ xmlbeans/binaries/xmlbeans-2.1.0.tgz y la descomprimiremos bajo ${HOME}/bin, para después añadir la variable de entorno XMLBEANS_HOME con esa ruta al chero ${HOME}/.bashrc. para poder compilar, así que la descargaremos de No hay distribuciones de código fuente en este caso: habrá que tomar el código más reciente del CVS de Sourceforge. Dentro de ${HOME}/src ejecutaremos: cvs -d:pserver:anonymous@bpelunit.cvs.sourceforge.net:/cvsroot/bpelunit co . Esto descargará todo el código fuente que necesitamos. Ahora lo parchearemos, compilaremos e instalaremos: cd org.bpelunit.framework zless /tmp/dist-entorno/BPELUnit_delta_1.0.diff.gz | patch -p0 cd ../org.bpelunit.build.standalone ant mkdir -p ~/bin/bpelunit cp -r build/* ~/bin/bpelunit 4 Asignaremos la ruta en ${HOME}/.bashrc: ${HOME}/bin/bpelunit a una nueva variable de entorno BPELUNIT_HOME export BPELUNIT_HOME=~/bin/bpelunit bpelunit.sh en ${HOME}/bin, y luego conguraremos BPELUnit con nuestros ajustes de ActiveBPEL. Para ello, copiaremos nuestro configuration.xml sobre el chero original ${HOME}/bin/bpelunit/conf/configuration.xml cuidando de poner el nombre de usuario correcto dentro de ActiveBPELDeploymentDirectory. Guardaremos el guión Ahora iniciar una única prueba será tan sencillo como: bpelunit.sh (ruta a chero .bpts) 1.6. Editor BPEL: NetBeans v6.0 Para editar los cheros BPEL, recomiendo NetBeans, en su versión 6.0, que genera cheros WSBPEL2.0: las versiones anteriores generan cheros BPEL4WS 1.1 problemáticos. Sólo hay que descargar el instalador del bundle All de www.netbeans.org, ejecutarlo y seguir las instrucciones. Este paquete no incluye un motor BPEL para depurar paso a paso. Para ello, habría que instalar OpenESB v2.0 de Addons_NB6.html, https://open-esb.dev.java.net/Downloads_OpenESB_ que sí lo incluye. Por lo pronto no es necesario. 1.7. IDE Java: Eclipse v3.3.1.1 Éste es el IDE que estoy usando para desarollar todo el código necesario. Originalmente lo escogí por ser el IDE utilizado por el equipo de ActiveBPEL, pero ahora también lo uso para desarrollar todo lo relacionado con la autoinstrumentación y la función de inspección. No lo he probado aún como editor BPEL ya que el proyecto relacionado está bastante inmaduro, pero incluyo su instalación en este documento por si en el futuro lo utilizo, y así me limito únicamente a Eclipse. La versión del paquete eclipse de Ubuntu tiene problemas a la hora de trabajar con cheros Ant, con lo que usaremos la versión disponible en la web ocial de Eclipse, y en particular la distribución Eclipse IDE for Java EE Developers, disponible en //www.eclipse.org/downloads/. http: tar.gz en algún directorio, como eclipse que se halla en su interior. Para instalarla, sólo tendremos que descomprimir el en ${HOME}/bin/eclipse y ejecutar el chero Hará falta instalar alguna que otra extensión para realizar ciertas tareas. Incluyo su instalación como subapartados. 1.7.1. Generador de analizadores sintácticos: JavaCC 4.0 y JJTree 1.3.2 en Eclipse JavaCC Plug-in v1.5.10 El analizador de expresiones XPath ha sido generando utilizando JavaCC, una herramienta que engloba tanto la generación del analizador léxico como el sintáctico. Sin 5 embargo, no usamos una gramática de JavaCC directamente, sino que escribimos una gramática decorada que pasamos al preprocesador JJTree para que genere una gramática de JavaCC que produzca árboles de sintaxis abstracta. Una vez el código ha sido generado, JavaCC y JJTree no son necesarios, pero si quisiéramos cambiar la gramática habría que instalarlos. En lugar de usar directamente las dos herramientas, es mucho más cómodo usar el plug-in para Eclipse que las integra con el editor, de tal forma que al editar una gramática JJTree se preprocesará y se pasará por JavaCC automáticamente. Hay varios posibles procedimientos, pero el más cómodo es el siguiente: 1. Abrimos Eclipse y seleccionamos Help → Software Updates → Find and Install.... 2. Seleccionamos Search for new features to install. 3. Añadimos una nueva fuente remota de funcionalidades para Eclipse pulsando en New Remote Site.... 4. Introducimos JavaCC Update Site como nombre (cualquier nombre vale realmente) y http://eclipse-javacc.sourceforge.net/ como URL. 5. Marcamos únicamente el sitio anterior y pulsamos Finish. 6. Tras un breve intervalo de tiempo, nos aparecerá una lista de las nuevas funcionalidades que podemos escoger. Basta con marcar JavaCC Update Site y se marcarán todas. Pasamos al siguiente paso. 7. Ahora marcaremos I accept the terms in the license agreements para indicar nuestra aceptación de las licencias del software, y acabaremos pulsando Finish. 8. Tras descargarse las actualizaciones, nos informará de que el software proviene de una fuente no conable, y nos pedirá conrmación, que le daremos pulsando Install All. 9. Nos pedirá reiniciar el entorno Eclipse, cosa que aceptaremos. Tras reiniciarse el entorno Eclipse, ya podremos trabajar sin problemas con gramáticas JavaCC (con extensión .jj) y JJTree (con extensión .jjt). Los cheros generados a través de JavaCC y JJTree tendrán, tras su nombre, una indicación de su procedencia entre los caracteres < y >. 1.7.2. Pruebas de unidad para tareas Ant: AntUnit v1.0 Esto no es más que un entorno de pruebas para tareas Ant, donde las pruebas se denen usando cheros Ant. Es la forma más cómoda y efectiva de probar las tareas. En este caso no hay plug-in para Eclipse, pero tampoco es necesario: el proyecto que usa este software, InstrumentadorProcesoBPEL, lo incluye entre sus cheros. Sólo hemos de ser conscientes de su existencia. 6 Para ejecutar las pruebas de unidad, basta con pulsar con el botón derecho en el chero build.xml incluido en el proyecto y seleccionar Run As... → Ant Build. Se compilará el código del proyecto y se lanzarán las pruebas de unidad, cuyos resultados se podrán ver en la pestaña de Consola (Console). Si todo ha ido bien, obtendremos el mensaje nal BUILD SUCCESSFUL. test/tests.xml, y el código que las ejecuta está en antunit.xml. Incluye una instrucción de procesamiento <?eclipse.ant.import?> para ser importada por el chero build.xml, que es generado por Eclipse automáticaLas pruebas se hallan denidas en el chero mente al tratar de exportar el proyecto como una Ant Buildle. 1.7.3. Editor BPEL: Eclipse BPEL Project Aunque está aún bastante inmaduro (en fase de incubación), existe un proyecto para Eclipse que añade soporte para editar procesos BPEL con una interfaz gráca: es el Eclipse BPEL Project. Tiene bastantes dependencias, y compilarlo todo llevaría bastante tiempo, así que vamos a usar un sitio de actualizaciones. El proceso de instalación es idéntico al del plug-in de JavaCC, pero en este caso la URL es http://download.eclipse.org/technology/bpel/update-site/. Al seleccio- nar la funcionalidad BPEL Designer, automáticamente se instalarán también todas las dependencias necesarias. Sólo hemos de seguir las instrucciones en pantalla. 1.7.4. Importación de proyectos existentes Bastará con descomprimir cualquiera de los .jar con el código fuente dentro de nuestro workspace, que se creará cuando ejecutemos por primera vez Eclispe, ya que se incluyen en ellos los cheros de proyecto Eclipse. Habrá que reiniciar Eclipse para que éste encuentre los nuevos proyectos. 2. Uso del autoinstrumentador Para emplear el autoinstrumentador, informaremos a Ant de la existencia de la tarea InstrumentadorProcesoBPEL del paquete es.uca.webservices.bpel contenida en la distri- instrumentador_procesobpel_bin.jar. Para ello, el chero Ant que usemos habrá de incluir un elemento taskdef que informe bución binaria del instrumentador, a Ant de la existencia de dicha tarea: <taskdef name="instrumentar" classname="es.uca.webservices.bpel.InstrumentadorProcesoBPEL" classpath="ruta al fichero .jar "/> Posteriormente, para invocar la tarea, incluiremos una serie de elementos fileset anidados que listen los cheros BPEL, WSDL y XML Schema. Las extensiones no son importantes: el autoinstrumentador analiza los cheros y examina sus nombres de espacios para ver de qué tipo es el contenido de cada chero. Un ejemplo: 7 <instrumentar> <fileset dir="." includes="MiProceso.bpel *.wsdl *.xsd"/> </instrumentar> Esta tarea no empaqueta los resultados en un .bpr. Tendremos que usar la tarea jar para ello, con cuidado de incluir el BPEL instrumentado y no el original: <jar compress="true" jarfile="${bprfile}"> <zipfileset dir="." includes="*.wsdl" prefix="wsdl"/> <zipfileset dir="." includes="procesoInspeccionado.bpel" prefix="bpel"/> <zipfileset dir="." includes="catalog.xml" prefix="META-INF"/> <zipfileset dir="." includes="proceso.pdd"/> </jar> 8