Como mucho de ustedes saben, SEAM es un framework que integra Java EE standards para que trabajen de una forma integrada y armoniosa. Dentro del nucleo de SEAM se encuentran el Enterprise JavaBeans 3 (EJB3), el Java Server Faces (JSF) y una de las mas importantes integraciones (la cual es la razon de este pequeño articulo) es la integracion del JBOSS jBPM. Empezando este pequeño tutorial, primeramente se pasa a explicar la instalación del Eclipse (Un IDE que solo lo utilizo para mis desarrollos relacionados al jBPM, pues no me agrada mucho) con los plugins necesarios para el desarrollo en SEAM 01. Instalacion del IDE – Primero es necesario descargar el IDE (eclipse-jee-europa-winter-win32.zip) y el paquete JBossTools-2.1.1.GA-ALL-win32.zip – Descomprime el Eclipse y copia el contenido del JBossTools en el IDE descompreso, es decir:
Figura 01. Copiado del JBoss-Tools al Eclipse
– Finalmente desde el command pad teclea en la carpeta donde descomprimiste el IDE: >eclipese -clean – Listo, ya tienes el IDE funcionando 02. Desarrollando el proyecto SEAM
– Primero crea un nuevo proyecto SEAM
Figura 02. Desarrollo de un proyecto SEAM
– Setea el “Target Runtime” y el “Target Server” en funcion del lugar en el que descomprimiste tu JBoss AS y en configuraciones apunta a SEAM 2.0
Figura 03. Seteo del JBoss AS
– Haz click en “Next” hasta llegar a la ventana de “Seam Facet” en donde etableces el tipo de DB con la cual a de funcionar tu proyecto. Como solo estamos probando como funciona SEAM dejalo con la DB HSQL e instala su driver (que te lo tienes que descargar) – Tambien es necesario que descargues “jboss-seam-2.0.2.SP1”, lo descomprimas y establece su ubicacion en “Seam Runtime” como se parecia en la figura.
Figura 04. Seteo del jboss-seam y la Base de Datos
– Ahora ya tienes el proyecto listo para ser utilizado
Figura 05. Estructura del nuevo proyecto 03. Creacion del flujo jBPM
– En la carpeta “resources” crea un jBPM “Process Definition”
Figura 06. Creacion de un nuevo flujo jbpm
Figura 07. Flujo jbpm
– Crea tu flujo
Figura 08. Ubicacion del flujo jbpm
Como pueden apreciar, el mio se llama “Tareas” – Copia y luego pega “processdefinition.xml” a la carpeta “src/model”
Figura 09. Traslado del archivo “processdefinition.xml”
04. Configuracion del archivo “components.xml”
– Ubicacion
Figura 10. Ubicacion del archivo “components.xml”
– Edicion: Descomenta esta seccion del codigo
Figura 11. Edicion del archivo “components.xml”
– Adiciona el nombre del archivo jpdl de tu flujo, en este caso “processdefinition.xml”
Figura 12. Agregacion de “processdefinition.xml” en “components.xml” 05. Creacion de los archivos “hibernate.cfg.xml “ y “jbpm.cfg.xml”
– La forma mas simple es copiar y pegar ambos archivos de uno de los ejemplos que vienen en “jboss-seam-2.0.2.SP1”. El mas completo es el “dvdStore”. – Una vez ubicados ambos archivos, procede a editar el “hibernate.cfg.xml” de la siguiente forma: Primero escribe el nombre de tu proyecto
Figura 13. Edicion del archivo “hibernate.cfg.xml”
Escribe el valor del Datasource en funcion del nombre de tu proyecto, asi si tu proyecto se llama Test, el valor de tu DS sera: java:/TestDatasource
Figura 14. Edicion del “connection.datasource”
– El archivo “jbpm.cfg.xml” dejalo sin modificiaciones. Deberia presentar la siguiente extructura:
Figura 15. El archivo “jbpm.cfg.xml” 06. Desarrollo de Beans y paginas XHTML
– Login: El codigo del login es:
Figura 16. Codigo del bean Login.class
Como se puede apreciar es muy simple y la unica funcion que tiene es setear el actorId en jBPM mediante la clase Actor del SEAM. Una vez invocada la accion “setLog()” la pagina que sera desplegada ha de ser: “TaskPage.xml”
Figura 17. Vista de login.xhtml
– TaskPage:
Esta pagina tiene la funcion de desplegar todas las tareas del actor que se haya logeado en la pagina “login”
Figura 18. Vista de TaskPage.xhtml
El bean correspondiente a esta pagina es:
Figura 19. Codigo del bean TaskRouter.class
Este codigo es muy simple tambien, y las acciones utilizadas iniciaran cada uno de los nodos de tu flujo.
Figura 20. Vista de la accion “Aceptar Importancia”
– Inicio del flujo
Figura 21. Vista de la accion “Esperar respuesta” de “inicio.xhtml”
Figura 22. Codigo del bean Inicio.class
El inicio del flujo es invocado cuando el metodo create() es instanciado. Como se puede apreciar esto es posible gracias a la utilizacion de la anotacion @CreateProcess cuyo argumento es el nombre del flujo anteriormente desarrollado. – ConfirmDate y ConfirmTask Las dos paginas y codigos son similares asi que solo explicare uno de ellos. – ConfrimDate
Figura 23. Vista de la accion “Confirmar Fecha” en “confirmDate.xhtml”
Figura 24. Codigo del bean ConfirmDate.class
Como se puede apreciar en las anteriores figuras, aca no se presenta nada novedoso, con la exepcion de las anotaciones de biyeccion @In y @Out, que cumplen la funcion de introducir variables en el jBPM o extraerlas del mismo. La unica accion que utilizamos aca es la finalizacion del nodo “Fecha” mediante el metodo “endDate()” Como se habran dado cuenta, siempre que iniciamos una tarea en un nodo utilizamos la anotacion @StartTak y cuando la queremos finalizar utilizamos @EndTask, esto es muy importante, pues si falta alguna de ellas el flujo no funciona. – Resultado Finalmente tenemos las pagina que es desplegado cuando estamos en el ultimo nodo de nuestro flujo jBPM, la cual simplemente desplegara toda la informacion apuntada en los anteriores nodos
Figura 25. Vista de la accion “Aceptar!” en “resultado.xhtml”
El bean asociado a esta pagina es Resultado.class
Figura 26. Codigo del bean Resultado.class
Como se puede apreciar, este codigo lo unico que hace es culminar la terea y finalizar el nodo. 07. Probar el proyecto Una vez concluido todas las paginas, configuraciones y beans, inicia el servidor JBoss desde el Eclipse y notaras que tu proyecto ya se encuentra deployado en el mismo
Figura 27. El proyecto SEAM en el servidor JBoss
Despues de haber iniciado el servidor, con un browser entra a la siguiente direccion: http://127.0.0.1:8080/Test01 y listo, se tiene que desplegar la pagina “home.seam” mediante la cual puedes dirigirte a la pagina de “login.seam” para empezar el flujo Para un mayor entendimiento de lo explicado anteriormente, les dejo el codigo del proyecto desarrollado en su totalidad: NUEVO LINK!!!
Espero que les sea de utlidad
El link del ejemplo no funciona, está mal direccionado y no logro descifrarlo.
Agradecería que lo corrigieran, gracias
Comentario por John — noviembre 7, 2008 @ 3:42 pm |
podrias volver a poner el codigo del proyecto que hiciste 😀 porfa , se perdieron
Comentario por dixi — noviembre 21, 2008 @ 4:09 pm |
OK
Revisen de nuevo 😉
Comentario por chrisrod — noviembre 25, 2008 @ 8:56 pm |
Ey christian no se ven las imagenes? que pasara?
gracias hermano, colaboranos, son de gran utilidad.
Felipe
Comentario por felipe Ramirez — enero 7, 2009 @ 8:18 pm |
Muy bueno el tutorial dure mucho para poder implementar jbpm con seam MUCHAS GRACIAS!!!
Comentario por sergio — febrero 12, 2009 @ 5:20 am |
Muy buen tutorial y buena dedicacion !
Lo unico es que actualmente no se puede bajar el código 😦
Muchas gracias !
Comentario por Damian — diciembre 11, 2009 @ 2:20 pm |
Gracias chrisrod, buen tutorial, ya voy en el paso 6, pero el codigo fuente no lo encuentro en la liga, pudieras publicarlo nuevamente o enviarmelo. Gracias.
Comentario por Víctor Sánchez — abril 18, 2010 @ 5:44 pm |
Gracias por el tutorial, gran trabajo. Me está siendo de gran utilidad. ¿Podrías volver a publicar un link con los archivos del proyecto? Muchas gracias.
Comentario por fserrano — marzo 10, 2011 @ 8:26 am |
Es un tutorial muy bueno, podrías subir correctamente el código de ejemplo? muchas gracias
Comentario por Juan — julio 19, 2011 @ 7:07 am |