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:[email protected]:/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