====== 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//