12 octubre 2012

Timer y TimerTask. Programar tareas. TWF.


Hoy voy a hablar de los programadores de tareas de Java. En concreto las clases Timer y TimerTask.


Hay algo que tengo muy claro: No me gustan los hilos ni la concurrencia, así que todo API / utilidad que me abstraiga de utilizar y tener en cuenta toda esa parafernalia es bien recibida, máxime para cuando es algo que no te tiene que requerir mucho tiempo y (nunca mejor dicho) quedarte bloqueado hasta terminarla.

Así que más adelante, se muestra un ejemplo de cómo manejar Timer y TimerTask para ejecutar una tarea: cada día a la misma hora, para ejecutar cada 'n' horas, o 'n' minutos, para ejecutarla una vez a una hora concreta o ejecutarla una vez pasado un tiempo. Y todo esto Thread-Worry-Free. Maravilloso.


10 octubre 2012

Ejemplos de split de Strings

Siempre me pasa lo mismo, voy a utilizar el método split de la clase String, y no estoy seguro del todo cómo se va a comportar, así que dejo por aquí una clase que ilustra bastante bien el comportamiento de este método tan útil y de paso, una versión "mejorada" de split el cual no te incluye espacios en blanco.

09 octubre 2012

Excepciones personales


Una de las cosas que más se repiten en un proyecto de desarrollo, es el tema de log y excepciones. Lo tengo super trillado ya pero creo que vendría bien el tener a mano una guía con unas clases ya predefinidas que me abstrayeran de hacerlas siempre.
Comenzaré con una clase de excepciones propia que básicamente sea una extensión de la clase Exception y que la única particularidad, sea que mediante el código de error genere un mensaje u otro.

Esto lo haré así ya que en todos los proyectos que he trabajado, o bien necesitaban localización o mucho mensaje personalizado y siempre acabo haciendo lo mismo. Os dejo un ejemplo de clase personalizada y de un fichero de códigos de error.

01 octubre 2012

Singleton


Estoy preparando una entrada sobre cómo parsear un fichero de properties dividido por secciones, y mientras estaba escribiendo el código de ejemplo, se me ha venido a la cabeza que lo mejor para implementar un objeto de propiedades, es el que tenga una única instancia dentro del código. Es por esto, por lo que lo mejor siempre es crear un objeto Singleton.


Es útil, dado que una aplicación se arrancará, y lo primero que hará es leer un fichero de propiedades para empezar a funcionar. Pero dicha aplicación puede tener varias instancias, o que durante la ejecución, necesite echar mano de esas propiedades. Así pues, si ya hemos leído y parseado todo el contenido de ese objeto de propiedades ¿Para qué volverlo a leer si podemos compartir un único objeto entre todas las clases?

Después del salto os muestro un codiguito de ejemplo de cómo declarar, instanciar y usar un ejemplo de tipo singleton.