====== Migración de Primefaces 5.0 a 5.1 ====== **Primafaces 5.0 ya NO tiene soporte** por parte del fabricante, por lo que **TODAS** aquellas **aplicaciones** que todavía no lo hayan hecho, **deben migrar a Primefaces 5.1**. En principio no será necesario realizar modificaciones de código fuente de las paginas, solo en la configuración de las dependencias del proyecto (pom). ===== Proceso de Migración ===== La migración será [[https://jira.atica.um.es/jira/browse/MIG-867|coordinada por el equipo FundeWEB]] de MNCS mediante el **proyecto MIGRACIONES de Jira**, de modo similar a como se hizo la "Migración de OAS a Weblogic". MNCS creará una **subtarea del tipo "Migración Aplicación" para cada app q haya q migrar**, poniendo como responsable al q tenga q hacer la migración. MNCS pondrá una subtarea de este tipo para cada uno de los entornos (Local, Desarrollo, Test y Producción). Conforme Desarrollo vaya cerrando las tareas de "Migración Aplicación" de cada entorno, MNCS pondrá una **subtarea del tipo "Prepara servidor manejado" a Sistemas**, para q configuren las librerías necesarias. Todos los jiras llevarán una etiqueta q identifique el grupo de desarrollo y otra para el nombre de la aplicación, ambas en mayúsculas. En caso de **dudas o problemas, contactar con el equipo FundeWEB** de MNCS. ===== Migración de una Aplicación ===== Para llevar a cabo la migración de una app, en primer lugar se deben **aplicar los siguientes 2 pasos de esta Wiki en LOCAL**. Una vez hecha la migración en LOCAL (y testeada), el desarrollador debe **cerrar la tarea de "Migración Aplicación"**, de modo q MNCS pueda ponerle a Sistemas la tarea correspondiente de "Prepara servidor manejado" para q configuren las librerías necesarias en el entorno de Desarrollo. Este proceso se debe repetir para cada uno de los entornos de Desarrollo, Test y Producción. La migración en Producción requerirá de una coordinación minuciosa, de modo q, si es posible, sea imperceptible para los usuarios. ===== Modificaciones en las Páginas XHTML ==== La [[https://github.com/primefaces/primefaces/wiki/Migration-Guide|Guía de Migración de Primefaces]], indica que los puntos a realizar para actualizar de la versióon 5.0 a cualquier versión superior son los siguientes: * El soporte para cadenas de texto en las propiedades //filterBy// y //sortBy// fue marcado como //deprecated// en Primefaces 5.0 y se ha eliminado en Primefaces 5.1. En las propiedades //filterBy// y //sortBy//, solo se pueden utilizar expresiones EL. Si se quiere especificar el nombre del campo para la ordenación y filtrado, como por ejemplo, en el componente ////, se puede utilizar la propiedad //field//. * Los componentes de generación de gráficas marcados como //deprecated// han sido eliminados. Tenéis que revisar la configuración de los gráficos con los ejemplos del [[http://www.primefaces.org/showcase/ui/chart/multiaxis.xhtml|Showcase de Primefaces]]. En principio los componentes de generación de gráficas marcados como //deprecated// son los heredados de Primefaces 4.x, por lo que no creo que haya que modificar ninguno. Si habeis utilizado siempre los ejemplos del //Showcase// de Primefaces 5.0, no tenéis que cambiar nada (que en principio es el escenario en el que nos encontramos nosotros). ===== Modificaciones de las Dependencias del Proyecto ==== Abrimos el POM principal del Proyecto y cambiamos la versión del //// a [[https://archiva.atica.um.es/archiva/browse/es.um.atica.fundeweb/parent|2.0.17 o superior]] si hay disponible. Abrimos el POM del módulo WEB y modificamos las dependencias del proyecto por las siguientes: org.glassfish javax.servlet javax.el el-api javax.transaction transaction-api org.glassfish javax.ejb org.glassfish javax.faces javax.validation validation-api org.hibernate hibernate-validator org.jboss.logging jboss-logging org.hibernate.javax.persistence hibernate-jpa-2.0-api provided org.hibernate hibernate-core antlr antlr dom4j dom4j org.javassist javassist org.hibernate.common hibernate-commons-annotations org.hibernate hibernate-entitymanager org.hibernate hibernate-infinispan org.infinispan infinispan-tree org.jgroups jgroups com.oracle jdbc.driver com.sun.mail javax.mail org.primefaces primefaces org.primefaces.themes all-themes rome rome org.jdom jdom net.glxn qrgen com.google.zxing javase net.sf.barcode4j barcode4j-light org.primefaces.extensions primefaces-extensions com.google.code.gson gson org.apache.poi poi log4j apache-log4j-extras org.slf4j slf4j-api org.slf4j slf4j-log4j12 org.slf4j jcl-over-slf4j javax.xml.ws jaxws-api org.glassfish.metro webservices-rt javax.ws.rs jsr311-api com.sun.jersey jersey-client com.sun.jersey jersey-core com.sun.jersey jersey-json com.sun.jersey.contribs jersey-multipart com.sun.jersey jersey-server com.sun.jersey jersey-servlet org.codehaus.jackson jackson-jaxrs org.codehaus.jackson jackson-xc commons-beanutils commons-beanutils commons-codec commons-codec commons-collections commons-collections commons-io commons-io commons-fileupload commons-fileupload commons-lang commons-lang org.apache.commons commons-lang3 org.jboss.seam jboss-seam org.jbpm.jbpm3 jbpm-jpdl org.jboss.seam jboss-seam-mail org.jboss.seam jboss-seam-pdf com.lowagie itext com.lowagie itext-rtf org.jfree jfreechart org.jboss.seam jboss-seam-remoting org.jboss.seam jboss-seam-ui org.jboss.seam jboss-seam-debug org.jboss.seam jboss-seam-excel net.sourceforge.jexcelapi jxl org.jboss.seam jboss-seam-rss net.sourceforge.yarfraw yarfraw org.tuckey urlrewritefilter org.quartz-scheduler quartz es.um.atica.fundeweb fundeweb-commons es.um.atica.fundeweb fundeweb-environment-info es.um.atica.fundeweb fundeweb-hibernate es.um.atica.fundeweb fundeweb-jaxrs es.um.atica.fundeweb fundeweb-jdbc es.um.atica.fundeweb fundeweb-jpa es.um.atica.fundeweb fundeweb-seam-components es.um.atica.fundeweb fundeweb-server-info es.um.atica.fundeweb fundeweb-tags es.um.atica.fundeweb fundeweb-xml org.um.atica ejb_interfaces com.oracle.oc4j oc4jclient org.jasig.cas.client cas-client-core org.apache.santuario xmlsec org.apache.velocity velocity Abrimos el POM del módulo TESTS y modificamos las dependencias del proyecto por las siguientes: En la primera dependencia de este módulo deberemos sustituir el **groupId** y el **artifactId** por el correspondiente a nuestro proyecto y módulo web. GROUPID_PROYECTO.NOMBRE_PROYECTO NOMBRE_PROYECTO-web classes org.slf4j slf4j-log4j12 test log4j log4j test org.jboss.arquillian.testng arquillian-testng-container test org.jboss.arquillian.container arquillian-wls-remote-12.1 test org.jboss.arquillian.extension arquillian-seam2 test org.hsqldb hsqldb test org.testng testng test org.dbunit dbunit test org.jboss.seam jboss-seam ejb org.glassfish javax.ejb javax.transaction transaction-api org.glassfish javax.faces javax.el el-api javax.validation validation-api org.hibernate.javax.persistence hibernate-jpa-2.0-api provided com.sun.mail javax.mail org.glassfish javax.servlet javax.xml.ws jaxws-api org.glassfish.metro webservices-rt provided javax.ws.rs jsr311-api es.um.atica.fundeweb fundeweb-commons es.um.atica.fundeweb fundeweb-environment-info es.um.atica.fundeweb fundeweb-hibernate es.um.atica.fundeweb fundeweb-jdbc es.um.atica.fundeweb fundeweb-jpa es.um.atica.fundeweb fundeweb-seam-components es.um.atica.fundeweb fundeweb-tags es.um.atica.fundeweb fundeweb-test test org.um.atica ejb_interfaces com.oracle.oc4j oc4jclient Ahora solo tenéis que realizar una actualización Maven del proyecto (en Eclipse: Maven --> Update Proyect) y desplegar en el servidor Weblogic local para realizar las pruebas necesarias. ===== FAQs =====