lunes, 27 de abril de 2009

Property Editor

Hace ya bastantes días que no escribo nada aquí, pero hoy tengo ingredientes suficientes para hacer un nuevo post: tiempo y un tema. Aunque es el primer día del curso, ya tengo cositas para mantener el blog activo, así que espero que junto a otros temas que tengo pendientes de escribir, pueda mantener esto vivo.

Hasta ahora, cuando definía un bean en Spring, para asignar valores a sus atributos o hacía referencia a otro bean, o a un tipo "simple".


¿Pero qué ocurre si var02 no fuera de tipo Integer, String, List, ... sino que se trata de una clase de nuestro dominio? Para esto, Spring nos ofrece los Property Editor. Para ver su funcionamiento, veamos un ejemplo. Supongamos que tenemos la siguiente clase:

Y que ahora, el atributo var02 de MiClase será una instancia de Usuario. La declaración anterior, nos daría un error, ya que el setVar02 espera un parámetro de tipo Usuario.

El primer paso que debemos dar para solucionar esta situación, es implementar una clase que a partir de una cadena de texto sea capaz de crear una instancia de Usuario, y a la vez, a partir de una instancia de Usuario nos devuelva una cadena de texto, para que se encargue de "traducir" lo que hayamos configurado. Esta clase debe extender a java.beans.PropertyEditorSupport y sobreescribir los métodos:
  1. public void setAsText(String text) throws IllegalArgumentException
  2. public String getAsText()
Para nuestro caso, un ejemplo puede ser la siguiente clase:


El siguiente paso es indicarle a Spring que queremos añadir nuestro propio Property Editors:

Y ahora si que podremos definir miBean, haciendo que var02 se inicialice con una instancia de Usuario, en la que nombre contendrá la cadena "Gregorio" y apellido la cadena "Mena".

domingo, 5 de abril de 2009

Trucos para Eclipse (I)

Cuando se pasa tantas horas al día trabajando con una aplicación, conocer algunos de sus truquitos puede suponer un ahorro de tiempo importante a la larga.
Hoy me he decidido a escribir el primer post de una serie "Trucos para Eclipse (N)" que espero que vaya creciendo poco a poco.

Escapar texto al pegar

Supongamos que tenemos la siguiente línea de código

String mensaje = "Los archivos deben estar en ";

y copiamos y pegamos lo siguiente "C:\temp". Como no se han escapado las comillas, Eclipse avisará del error; y además debemos tener en cuenta que \t representa un tabulador...

Para evitar esto, le podemos indicar a Eclipse que escape, por nosotros, el texto necesario. Para ello, vamos a Window -> Preference -> Java -> Editor -> Typing y marcamos la casilla "Escape text when pasting into a string literal"


Búsquedas incrementales

Hasta hace poco tiempo, para realizar búsquedas en el fichero que estaba editando, usaba el Ctrl + F de toda la vida. Lo malo es que el Firefox, por ejemplo, me tenía mal acostumbrado y por eso echaba de menos que Eclipse fuera realizándo la búsqueda conforme yo iba introduciendo el texto a buscar. Para mi alegría, me entero de que esto mismo se puede hacer usando Ctrl + J. Cuando lo hayamos pulsado, en la barra inferior indicará que estamos realizando una búsqueda incremental, y podremos in escribiendo el texto que queremos buscar.

miércoles, 1 de abril de 2009

FindBugs

Hace poco más de año y medio que empecé a trabajar por cuenta ajena y tuve mi primer contacto con J2EE. Rodeado de personas muy buenas en todo esto, a menudo me surgía la misma duda: ¿se podría hacer mejor?. Desde entonces he aprendido bastantes cosas, y lo cierto es que ya no me hago esa pregunta, pues estoy convencido de que la respuesta es . Así que mi pregunta ha cambiado a ¿qué podría mejorar? o ¿cómo podría mejorarlo?

Hoy he estado probando FindBugs, que creo que me puede ayudar bastante a contestar las preguntas anteriores. Si bien es cierto que no me dirá si uso la arquitectura adecuada, sí que podré revisar lo básico, y ya se sabe que a veces los detalles marcan la diferencia.

Para usarlo, basta con descargarlo desde su web. Una vez lo hayamos descomprimido, podremos ejecutar el fichero findbugs.bat que se encuentra en la carpeta bin. Cuando se haya cargado la aplicación, vamos a Fichero -> Nuevo Proyecto. En la venta que se abre, le damos un nombre al proyecto, y se selecciona la aplicación que se quiere comprobar.


Tras darle a Finish, realizará en análisis y nos mostrará las posibles causas de ineficiencia y problemas de seguridad.


Pinchando en un bug concreto en la parte superior, se mostrará en la inferior una descripción del problema, la clase en la que se encuentra y la línea concreta que lo provoca.