martes, 13 de noviembre de 2012

El Principio de Peter

Esto es algo que se repite demasiado a menudo en cualquier empresa que se dedica a la informática...

http://es.wikipedia.org/wiki/Principio_de_Peter

Inicializar un controller cada vez que se renderiza la jsf

El caso en que he necesitado esto ha sido el siguiente.
Tengo una jsf con un listado que incluye un dialog, este dialog necesito que se cargue con una informacion distinta dependiendo del objeto seleccionado en el listado.
Cada vez que se renderiza el dialog he hecho un prerenderview para que coja el objeto seleccionado para su visualización correcta.

http://www.mkyong.com/jsf2/jsf-2-prerenderviewevent-example/

lunes, 15 de octubre de 2012

lunes, 24 de septiembre de 2012

Spring Roo creación rápida de proyectos

He estado mirando un poco de Spring Roo, un generador de proyectos java rápido y sencillo de usar. Con él se puede crear un proyecto con spring y MyFaces por ejemplo en pocos minutos, con toda la configuración necesaria.

Aquí dejo el link del tutorial que he mirado:
http://puesenmiordenadorfunciona.blogspot.com.es/2011/11/probando-el-plugin-eclipse-de-spring_30.html

Otro link inicial de uso:
http://www.dosideas.com/wiki/Spring_Roo

viernes, 14 de septiembre de 2012

Buenas prácticas en el desarrollo de java

Estas y algunas más también están muy bien:
http://java.dzone.com/articles/common-code-violations-java

Proyectos de ejemplo con jsf2

He encontrado proyectos interesantes que utilizan jsf2 allá van!

http://code.google.com/p/myjobs/source/browse/trunk/
http://code.google.com/p/projet-jcertif-2011/
http://code.google.com/p/app-demo/

Plugin mouseFeed para aprende los shortcuts de Eclipse

 MouseFeed es un plugin para el IDE Eclipse que te va mostrando el shortcut de todas las acciones que se realizan con el ratón.
 Me parece un plugin muy útil para iniciarse en el aprendizaje del uso "ágil" de eclipse ya que muchas de las tareas repetitivas requieren, normalmente, hacer varias navegaciones.
 Lo normal es que la gente se busque una lista de los shortcuts más usados y se los aprenda de memoria, pero con este plugin realmente puedes aprender los shortcuts de las acciones que realizas habitualmente.

Url de instalación para Eclipse:
http://update.mousefeed.com

jueves, 13 de septiembre de 2012

Creación de un portlet básico para Liferay

Este tutorial va orientado a hacer una introducción básica de la creación de un portlet para Liferay totalmente independiente de otros proyectos.

El proyecto realizado de ejemplo se encuentra como fichero adjunto:  ejemplo.zip
Creación del proyecto en Eclipse

Crearemos un proyecto tipo "Maven Project":



Buscaremos los arquetipos de maven para liferay y seleccionaremos liferay-portlet-archetype

 Estructura del proyecto

Esta es la estructura mínima que debe tener un proyecto de un portlet para Liferay:



La organización será la siguiente:

    Clases java. Irán dentro del paquete src/main/java
    Resources. Si existieran resources deberían estar en src/main/resources
    XHTMLs. Irán dentro de src/main/webapp
    Fichero de contexto  y de configuración para Liferay. Irán dentro de src/main/webapp/WEB-INF

Configuración del proyecto en Eclipse

Hay varias cosas que comprobar después de generar el proyecto de eclipse.

La primera es "Deployment Assembly" donde deberíamos tener 3 source como en la imagen:




La siguiente cosa que debemos comprobar es "Java Build Path" donde debemos tener la librería de JRE de desarrollo que esté instalada en nuestro equipo y la Maven Dependencies:


En "Project Facets" debemos modificar varios checks :


Dynamic Web Module. Versión 2.5

Java. Version 6.0

JavaScript. Versión 1.0

JavaServer Faces. Versión 2.0

Todos los demás checks deben estar sin chequear.

Y por último, dentro de Project Facets - Java Server Faces debemos seleccionar el tipo "Disable Library Configuration":

Dependencias Maven

Dependencias maven necesarias para el proyecto del portlet:

    Spring mvc:    spring-webmvc-portlet    spring-beans    spring-web    spring-tx    jstl    portlet-api   
    Dependencias liferay:    portal-service    util-java    util-bridges   
    Dependencias portlets:    portlet-api   
     Dependencias JSF 2 en Liferay:    portletfaces-bridge   
    Dependencias JSF 2 y PrimeFaces:    primefaces    jsf-api    jsf-impl    jboss-el 
    Dependencias temas PrimeFaces -->    redmond

Se ha subido como ejemplo un pom.xml, un.classpath y un .project del ejemplo generado.
Configuración de contexto y de ficheros del portlet liferay

El fichero de contexto en principio será muy pequeño, debido a que utilizaremos anotaciones para definir los controladores.

Si miramos el applicationContext.xml veremos que solo declaramos la configuración para poder utilizar las anotaciones de spring.

Para definir un portlet de liferay hay que modificar los siguiente ficheros:

    portlet.xml. Declaramos el nombre del portlet de cara a Liferay y definimos la clase del portlet y los xhtml que utiliza.
    liferay-portlet.xml.  Se instancia el portlet que hemos creado en portlet.xml
    liferay-display.xml. Se define en qué categoría mostraremos nuestro portlet en el menú de portlets de Liferay
    faces-config.xml. Debe existir para evitar errores de Liferay pero no hace falta definir nada en este fichero.

Clase MiController.java

Esta clase será nuestro controlador. Tiene implementar la interfaz Serializable y debe tener las siguientes anotaciones:

@ManagedBean(name = "miController")

@SessionScoped

Asi definiremos que nuestra clase es un controlador que será llamado "miController" desde los xhtml.
Ficheros de vista .XHTML

Los ficheros con los que hemos realizado los ejemplos utilizan la etiqueta "ui:composition" y la forma de acceder a los atributos del controlador es bastante sencilla, por ejemplo:

Genera una caja de texto que usará el atributo nombre de miController.

Links de acceso a webs útiles

Pequeño listado de fuentes de información diversa sobre J2ee que utilizo cotidiamente:
http://www.raulvillalbamedina.com/index.php/es/profesional/11-webs-de-informacion-sobre-tecnologia-j2ee

Desarrollo con base de datos NOSQL Voldemort

Por si es de utilidad una pequeña herramienta que desarrollé en su momento para tener "utilidades" de uso cotidiano para la base de datos NOSQL Project Voldemort http://www.project-voldemort.com/voldemort/.

Utilidad
http://www.raulvillalbamedina.com/index.php/es/profesional/8-project-voldemort-util

Redirect desde portlet de Liferay usando JSF2

Forma de realizar un redirect desde un portlet de liferay:

http://stackoverflow.com/questions/6878828/liferay-portlet-and-jsf-redirect-during-render-phase

Ciclo de vida en JSF2

Ahí va el mejor explicado que he encontrado:

http://anadreamy.wordpress.com/2012/02/29/jsf-2-0-el-ciclo-de-vida/

Convertir de objeto java a JSON

He encontrado 2 librerías con las que realizar parseos rápidos y limpios de objetos java a JSON:

http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/

https://sites.google.com/site/gson/gson-user-guide

Pruebas java con Junit4

Links de tutoriales para aprender a usar Junit4 y poder realizar pruebas unitarios de tu código fuente:

http://junit.sourceforge.net/

http://www.cavdar.net/2008/07/21/junit-4-in-60-seconds/

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=junit4

Configurar google music fuera de Estados Unidos

Allá van las instrucciones para poder usasr google music fuera de estados unidos:
http://www.muycomputer.com/2011/11/17/google-music-ya-esta-disponble-pruebalo-gratis

Jquery Selector con JSF2

 Selectores para acceder con Jquery a objetos generados por jsf2:
http://blog.primefaces.org/?p=1867

Forma de hacer post-redirect con JSF2

Encontrado! Aquí se muestra la forma de hacer redirects con jsf2
https://blogs.oracle.com/enterprisetechtips/entry/post_redirect_get_and_jsf

Difundiendo los memes

Para ese momento de estres laboral son perfectos!!!

http://www.memegenerator.es/

Tutoriales y ejemplos de uso de JSF2 con Primefaces

Recopilatorio de links con tutoriales con el uso de jsf2 y Primefaces:

http://primefaces.org/

http://www.primefaces.org/showcase/ui/home.jsf

http://www.horstmann.com/corejsf/jsf-tags.html

http://www.mkyong.com/jsf2/custom-validator-in-jsf-2-0/

http://www.mkyong.com/tutorials/jsf-2-0-tutorials/

http://code.google.com/p/primefaces-extensions/source/browse/samples/showcase/trunk/src/main/webapp/sections/ajaxstatus/example-declarativeAjaxStatus.xhtml?r=1120&spec=svn1178

http://code.google.com/p/primefaces-extensions/source/browse/samples/showcase/trunk/src/main/java/org/primefaces/extensions/showcase/controller/AjaxStatusController.java?r=1120

http://balusc.blogspot.com.es/2011/01/jsf-20-tutorial-with-eclipse-and.html

http://www.coreservlets.com/JSF-Tutorial/jsf2/#New-Features

Proyecto completo con ejemplos de uso de Primefaces:

https://code.google.com/p/proyecto-final-alquileres/

Y para el que no tenga muy claro que es PrimeFaces:
http://es.wikipedia.org/wiki/PrimeFaces

Links de ayuda para el desarrollo de portlets con Liferay

Links de pequeños tutoriales de ayuda para el desarrollo de portlets con Liferay:



http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=gadgetLiferay6
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=Liferay
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=PrimefacesLiferayPortlet
http://www.liferay.com/community/wiki/-/wiki/Main/Integrating+PayPal+into+Liferay
http://www.liferay.com/es/community/forums/-/message_boards/message/13986927


Y para el que no tenga muy claro qué es un portlet:
http://es.wikipedia.org/wiki/Portlet

Ejemplo de configuración de IDE Eclipse para trabajar con una aplicación J2EE

A continuación se muestra un ejemplo de instalación de eclipse y configuración de diferentes plugins útiles en el desarrollo

Software a instalar:

  • JDK 6

Esta es la versión java que utilizamos.

DOWNLOAD: http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html

Instalar e incluir como variable del sistema: JAVA_HOME=C:\Program Files\Java\jdk1.6.0_27

  • Maven 3

Versión de maven que utilizamos para todos los proyectos

DOWNLOAD: http://maven.apache.org/download.html

Descomprimir e incluir en el PATH del sistema el directorio de instalación: C:\apache-maven-3.0.3\bin

Incluir librerías en: C:\apache-maven-3.0.3\lib\ext

jsch-0.1.38.jar

plexus-interactivity-api-1.0-alpha-6.jar

wagon-ssh-1.0-beta-7.jar

wagon-ssh-common-1.0-beta-7.jar

Añadir como variable del sistema M2_HOME con la ruta al directorio de instalación de maven y añadir en el path la ruta al directorio bin del maven, tal y como se muestra en la imagen:


  • Eclipse IDE for Java EE Developers
Ide de desarrollo.

DOWNLOAD: http://www.eclipse.org/downloads/

Plugins a instalar


Maven Integration for Eclipse: http://marketplace.eclipse.org/content/maven-integration-eclipse

Subversive - SVN Team Provider: http://marketplace.eclipse.org/content/subversive-svn-team-provider  Versión 1.6.16 de SVN

Checkstyle Plug-in: http://marketplace.eclipse.org/content/checkstyle-plug

JAutodoc: http://marketplace.eclipse.org/content/jautodoc -- Window-Preferences-Java-JAutodoc. Deseleccionar la opción Add ToDo for auto-generated Javadoc

ECobertura: http://marketplace.eclipse.org/content/ecobertura

Properties Editor: http://marketplace.eclipse.org/content/properties-editor-0

    Configurar este plugin con la opcion lowercase

CodePro Analytix: http://marketplace.eclipse.org/content/codepro-analytix

    Instalar desde "Help>Install new software..." con la url http://dl.google.com/eclipse/inst/codepro/latest/3.7
    Url para futuras versiones https://developers.google.com/java-dev-tools/download-codepro?hl=es

Style/Formatter


En la configuración de eclipse modificar el formateador de codigo java dentro de Preferences/Java/Code
Poner todas las codificaciones de Eclipse en UTF-8:

    General>Workspace>Text File Encoding> Other, seleccionar UTF-8
    General>Web>CSS Files> Encoding, seleccionar ISO10646/Unicode(UTF-8)
    General>Web>HTML Files> Encoding, seleccionar ISO10646/Unicode(UTF-8)
    General>Web>JSP Files> Encoding, seleccionar ISO10646/Unicode(UTF-8)

Configuración de Save Actions, estos son configuraciones que añadimos para evitar tener que hacer tareas repetitivas cada vez que guardamos un fichero java:






Deployment Assembly


Configuración del template para el TODO.


Para poder identificar mejor los creadores y fechas de creación de los TODOs del codigo hemos añadido un template. Hay que crearlo en eclipse con los datos que vemos en la imagen.




Configuración de los Validation de eclipse. En Window-Preferences-Validation hay que desactivar toda la columna Build.

TortoiseSVN (misma versión de svn que el plugin Subversive para evitar problemas.) (opcional, puedes usar solamente la integración de eclipse)
Cliente de svn para windows.
Para Versión 1.6 SVN
DOWNLOAD: http://sourceforge.net/projects/tortoisesvn/files/

FileZilla

Programa de ftp necesario para subir y descargar ficheros a servidores

DOWNLOAD: http://filezilla-project.org/download.php?type=client

Instalar.

Putty

Cliente de consola para conectarse a servidores unix.

DOWNLOAD: http://www.chiark.greenend.org.uk/sgtatham/putty/download.html

Descomprimir.

SoapUi (opcional)

Aplicación para pruebas contra webServices

DOWNLOAD: http://sourceforge.net/projects/soapui/files/

Instalar. Si existen proyectos soapui ya generados importarlos.