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á 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 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 <p:column>, 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 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 <parent> a 2.0.17 o superior si hay disponible.
Abrimos el POM del módulo WEB y modificamos las dependencias del proyecto por las siguientes:
<dependencies> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.servlet</artifactId> </dependency> <dependency> <groupId>javax.el</groupId> <artifactId>el-api</artifactId> </dependency> <dependency> <!-- jta --> <groupId>javax.transaction</groupId> <artifactId>transaction-api</artifactId> </dependency> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.ejb</artifactId> </dependency> <!-- JSF 2.x --> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.faces</artifactId> </dependency> <!-- FIN - JSF --> <!-- Bean Validation 1.x --> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> </dependency> <dependency> <groupId>org.jboss.logging</groupId> <artifactId>jboss-logging</artifactId> </dependency> <!-- FIN - Bean Validation --> <!-- JPA 2.x --> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.0-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency> <dependency> <groupId>antlr</groupId> <artifactId>antlr</artifactId> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> </dependency> <dependency> <groupId>org.hibernate.common</groupId> <artifactId>hibernate-commons-annotations</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-infinispan</artifactId> </dependency> <dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-tree</artifactId> </dependency> <dependency> <groupId>org.jgroups</groupId> <artifactId>jgroups</artifactId> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>jdbc.driver</artifactId> </dependency> <!-- FIN - JPA 2.x --> <!-- Java Mail API --> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> </dependency> <!-- FIN - Java Mail API --> <!-- Primefaces --> <dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>all-themes</artifactId> </dependency> <dependency> <groupId>rome</groupId> <artifactId>rome</artifactId> </dependency> <dependency> <groupId>org.jdom</groupId> <artifactId>jdom</artifactId> </dependency> <dependency> <groupId>net.glxn</groupId> <artifactId>qrgen</artifactId> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> </dependency> <dependency> <groupId>net.sf.barcode4j</groupId> <artifactId>barcode4j-light</artifactId> </dependency> <dependency> <groupId>org.primefaces.extensions</groupId> <artifactId>primefaces-extensions</artifactId> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> </dependency> <!-- FIN - Primefaces --> <!-- Logging --> <dependency> <groupId>log4j</groupId> <artifactId>apache-log4j-extras</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> </dependency> <!-- Puede tener un impacto negativo en el rendimiento <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> </dependency> --> <!-- FIN - Logging --> <!-- Servicios Soap --> <dependency> <groupId>javax.xml.ws</groupId> <artifactId>jaxws-api</artifactId> </dependency> <dependency> <groupId>org.glassfish.metro</groupId> <artifactId>webservices-rt</artifactId> </dependency> <!-- FIN - Servicios Soap --> <!-- Servicios Rest / Jersey / Jackson --> <dependency> <groupId>javax.ws.rs</groupId> <artifactId>jsr311-api</artifactId> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-json</artifactId> </dependency> <dependency> <groupId>com.sun.jersey.contribs</groupId> <artifactId>jersey-multipart</artifactId> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-servlet</artifactId> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-jaxrs</artifactId> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-xc</artifactId> </dependency> <!-- FIN - Servicios Rest / Jersey / Jackson --> <!-- Apache Commons --> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <!-- FIN - Apache Commons --> <!-- JBoss Seam 2.3.x --> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam</artifactId> <!-- <classifier>ejb</classifier> --> </dependency> <dependency> <groupId>org.jbpm.jbpm3</groupId> <artifactId>jbpm-jpdl</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-mail</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-pdf</artifactId> </dependency> <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> </dependency> <dependency> <groupId>com.lowagie</groupId> <artifactId>itext-rtf</artifactId> </dependency> <dependency> <groupId>org.jfree</groupId> <artifactId>jfreechart</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-remoting</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-ui</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-debug</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-excel</artifactId> </dependency> <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-rss</artifactId> </dependency> <dependency> <groupId>net.sourceforge.yarfraw</groupId> <artifactId>yarfraw</artifactId> </dependency> <dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> </dependency> <!-- FIN - JBoss Seam 2.3.x --> <!-- Librerias FundeWeb --> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-commons</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-environment-info</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-hibernate</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-jaxrs</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-jdbc</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-jpa</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-seam-components</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-server-info</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-tags</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-xml</artifactId> </dependency> <dependency> <groupId>org.um.atica</groupId> <artifactId>ejb_interfaces</artifactId> </dependency> <dependency> <groupId>com.oracle.oc4j</groupId> <artifactId>oc4jclient</artifactId> </dependency> <!-- FIN - Librerias FundeWeb --> <!-- CAS --> <dependency> <groupId>org.jasig.cas.client</groupId> <artifactId>cas-client-core</artifactId> </dependency> <dependency> <groupId>org.apache.santuario</groupId> <artifactId>xmlsec</artifactId> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> </dependency> <!-- FIN - CAS --> </dependencies>
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.
<dependencies> <dependency> <!-- Sustituir --> <groupId>GROUPID_PROYECTO.NOMBRE_PROYECTO</groupId> <artifactId>NOMBRE_PROYECTO-web</artifactId> <classifier>classes</classifier> </dependency> <!-- Dependencias - TEST --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.arquillian.testng</groupId> <artifactId>arquillian-testng-container</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.arquillian.container</groupId> <artifactId>arquillian-wls-remote-12.1</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.arquillian.extension</groupId> <artifactId>arquillian-seam2</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.dbunit</groupId> <artifactId>dbunit</artifactId> <scope>test</scope> </dependency> <!-- FIN - Dependencias - TEST --> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam</artifactId> <type>ejb</type> </dependency> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.ejb</artifactId> </dependency> <dependency> <groupId>javax.transaction</groupId> <artifactId>transaction-api</artifactId> </dependency> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.faces</artifactId> </dependency> <dependency> <groupId>javax.el</groupId> <artifactId>el-api</artifactId> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> </dependency> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.0-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> </dependency> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.servlet</artifactId> </dependency> <dependency> <groupId>javax.xml.ws</groupId> <artifactId>jaxws-api</artifactId> </dependency> <dependency> <groupId>org.glassfish.metro</groupId> <artifactId>webservices-rt</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.ws.rs</groupId> <artifactId>jsr311-api</artifactId> </dependency> <!-- Librerias FundeWeb --> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-commons</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-environment-info</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-hibernate</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-jdbc</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-jpa</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-seam-components</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-tags</artifactId> </dependency> <dependency> <groupId>es.um.atica.fundeweb</groupId> <artifactId>fundeweb-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.um.atica</groupId> <artifactId>ejb_interfaces</artifactId> </dependency> <dependency> <groupId>com.oracle.oc4j</groupId> <artifactId>oc4jclient</artifactId> </dependency> <!-- FIN - Librerias FundeWeb --> <!-- <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-impl</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> </dependency> <dependency> <groupId>org.jboss.logging</groupId> <artifactId>jboss-logging</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency> <dependency> <groupId>antlr</groupId> <artifactId>antlr</artifactId> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> </dependency> <dependency> <groupId>org.hibernate.common</groupId> <artifactId>hibernate-commons-annotations</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-infinispan</artifactId> </dependency> <dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-tree</artifactId> </dependency> <dependency> <groupId>org.jgroups</groupId> <artifactId>jgroups</artifactId> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>jdbc.driver</artifactId> </dependency> <dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> </dependency> <dependency> <groupId>org.primefaces.extensions</groupId> <artifactId>primefaces-extensions</artifactId> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>all-themes</artifactId> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> </dependency> <dependency> <groupId>org.jbpm.jbpm3</groupId> <artifactId>jbpm-jpdl</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-mail</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-pdf</artifactId> </dependency> <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> </dependency> <dependency> <groupId>com.lowagie</groupId> <artifactId>itext-rtf</artifactId> </dependency> <dependency> <groupId>org.jfree</groupId> <artifactId>jfreechart</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-remoting</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-ui</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-debug</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-excel</artifactId> </dependency> <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jboss-seam-rss</artifactId> </dependency> <dependency> <groupId>net.sourceforge.yarfraw</groupId> <artifactId>yarfraw</artifactId> </dependency> <dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> </dependency> <dependency> <groupId>org.opensymphony.quartz</groupId> <artifactId>quartz</artifactId> </dependency> --> </dependencies>
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
- fdw2.0/fundeweb2.0/gt/migracion-primefaces-5_0-a-5_1.txt
- Última modificación: 07/11/2017 10:46
- (editor externo)