====== Migración de PrimeFaces 6.1 a 7.0 ====== Solo para aplicaciones FundeWeb 2.0 que estan siendo desarrolladas o mantenidas en el IDE de FundeWeb 2.1. Para poder realizar la migración a PrimeFaces 7.0, tenemos que realizar los siguientes pasos: - Primero tenemos que realizar la [[migraciones:fdw2_wls_121_to_wls_122|Migración de Aplicaciones FundeWeb 2.0 de Weblogic 12.1 a 12.2]]. - En el POM principal, cambiamos la versión del //// a //[2.0.100, 2.0.199]// [[https://archiva.um.es/archiva/repository/FundeWeb/es/um/atica/fundeweb/parent/|Parents para aplicaciones FundeWeb 2.0]]. es.um.atica.fundeweb parent [2.0.100, 2.0.199] - En la sección de //// añadimos:[7.0, 7.0.99] [7.0, 7.0.99] [2.8.5, 2.8.99] [1.9.0, 1.9.9] [3.17, 3.99] [2.0.6, 2.0.99] - En el POM del módulo Web, hay que modificar la dependencia //rome//, cambiando su //// a //com.rometools//. Quedando: com.rometools rome - También hay que modificar la dependencia **//jdom//**, cambiando su //// a **//jdom2//**. Quedando: org.jdom jdom2 - Añadir la siguiente dependencia al final de las dependencias de Primefaces: com.googlecode.libphonenumber libphonenumber - Realizar las guias de migración:\\ [[https://primefaces.github.io/primefaces/8_0/#/../migrationguide/6_0|PrimeFaces Migration Guide from 5.3 to 6.0]] (Si estamos con PrimeFaces 5.3) \\ [[https://primefaces.github.io/primefaces/8_0/#/../migrationguide/6_1|PrimeFaces Migration Guide from 6.0 to 6.1]] \\ [[https://primefaces.github.io/primefaces/8_0/#/../migrationguide/6_2|PrimeFaces Migration Guide from 6.1 to 6.2]]\\ [[https://primefaces.github.io/primefaces/8_0/#/../migrationguide/7_0|PrimeFaces Migration Guide from 6.2 to 7.0]]. - Realizar las pruebas. - Hablar con MNCS para actualizar las librerías de la aplicación en los servidores de sistemas (Librerías 2.0.1 en Weblogic 12.2). ===== FAQ ===== ==== El componente p:schedule muestra el panel de bloqueo al cargar ==== Si con la versión anterior de primefaces no te salía el panel del bloqueo y ahora con Primefaces 7 sí te sale se debe a unos cambios que se han hecho en el componente para optimizar su carga. Ahora en vez de cargarse todo el calendario en una petición, se pinta la estructura y posteriormente mediante llamadas javascript ( PF('miSchedule').update()) se carga el contenido. Esto provoca que no se pueda controlar correctamente cuando aparece o no el panel de bloqueo y que poner el atributo **global="false** no funcione. Para solucionar este problema el componente primefaces nos da un atributo **extender** que permite sobrescribir el comportamiento del componente fullcalendar que es el que realmente muestra la agenda. Para ello debemos incorporar a nuestro proyecto el fichero [[https://svn.um.es/svn/SEAM/fundeweb-librerias/Proyectos/fuentes/primefaces-7-0/primefaces-fix/scheduler | schedule_fix.js]] dentro de la carpeta **src/main/webapp/resources/js** Una vez incluida la librería deberemos ir a nuestro componente calendario y en la propiedad extender añadir **initSchedule** quedando así Una vez realizado los cambios ya no debería saltar el panel de bloqueo cada vez que se actualice el calendario. ---- --- //[[juanmiguel.bernal@ticarum.es|JUAN MIGUEL BERNAL GONZALEZ]] 13/12/2019 08:42//