21 dic. 2011

Acceder a cuenta de Box.com desde Ubuntu 11.10

Hola de nuevo, aunque con algo de retraso... Hace poco cree una cuenta de Box.net, ahora Box, y con el tiempo he visto que no tienen ninguna aplicación para escritorios Linux (al menos yo no la he encontrado) y "googleando" un poco, he visto un artículo interesante de como configurar Box.net de una manera sencilla utilizando WebDAV, el artículo original está en http://bit.ly/vYGDwJ, y como me parece que está bastante bien lo voy a traducir y a modificar alguna cosa, ya que está basado en una versión anterior de Ubuntu a la que yo uso habitualmente.


Para configurar Box tendremos que hacer lo siguiente:

4 oct. 2011

Vaadin Spring Archetype made by me :D

Hace no mucho tiempo me puse a trabajar con Vaadin para ver como podía encajar en alguno de los proyectos que está desarrollando la compañía donde estoy trabajando ahora, comprobé que la arquitectura encajaba perfectamente con lo que estaba buscando para conseguir compatibilidad con diversos navegadores y sus distintas versiones, así que me puse manos a la obra y empecé con el típico tutorial rápido que tiene todo framework.


Tras realizar el tutorial comencé a incluir algo más de complejidad, por decir algo, de hsqldb para persistencia de datos pasé a mysql y posteriormente a Oracle XE, me basé en anotaciones JPA para realizar la persistencia de una manera transparente a la base de datos que se quisiera utilizar, posteriormente pensé en introducir Spring como framework de soporte para el "negocio" y ante la odisea que suponía el tener que andar con tanto jar por ahí suelto, decidí incluir Maven para gestionar las dependencias de manera eficiente, así que me puse a buscar y encontré que la gente de Vaadin tenía un arquetipo para crear proyectos con Maven, así que para que dar más vueltas, lo usé y generó un proyecto que contenía las dependencias necesarias para empezar a trabajar con Vaadin. Pero el problema vino cuando me puse a incluir las dependencias de Spring, que si spring-tx, spring-beans, spring-context, spring-aop, ... y entonces decidí realizar mi aporte a la comunidad.


El aporte es un arquetipo maven que genera un proyecto Vaadin con Spring y que he publicado en googlecode. Toda la información está disponible en la página del proyecto así que para que enrollarme más si puedo pasaros directamente el enlace para que juguéis con el... 


El enlace es http://code.google.com/p/vaadin-spring-archetype/ cualquier opinión para mejora o porque no termináis de ver como tira el arquetipo, será bienvenida.


Un saludo y a disfrutar

Uso de variables de Entorno con Spring


Hoy he tenido que pelearme con la configuración de Spring para poder desplegar una aplicación que ataca a una base de datos en diversos JBoss, con distintos esquemas de base de datos por usuario, así que he echado a volar mi imaginación y en lugar de utilizar diversos archivos de propiedades he decidido usar variables de entorno (que ya están definidas por requisitos de aplicación) esto aparentemente sencillo (al final lo era) se ha convertido en una odisea digna del propio Ulises, bueno no he tardado 20 años con dar con la solución, pero me ha costado un ratillo.

He empezado por lo sencillo (PropertyPlaceHolderConfigurer) y he pensado... "Pues si pongo el nombre de la vairiable de entorno... esto tiene que tirar si o si..." PUES NO!!! Navegando por los interneses he dado con varias páginas que me podían ayudar, pero nada, al final he hecho un "popurrí" y la cosa ha quedado tal que así:
  • Configuración del PropertyPlaceHolderConfigurer de spring:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<property name="searchSystemEnvironment" value="true"/>
<property name="locations">
<list>
<value>classpath:application.properties</value>
<value>classpath:resources.properties</value>
</list>
</property>
</bean>
  • Configuración del DataSource
<bean id="dataSourceConfiguracion" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="oracle.jdbc.OracleDriver" />
<property name="jdbcUrl" value="${DB_URL}" />
<property name="minPoolSize" value="10" />
<property name="maxPoolSize" value="100" />
<property name="initialPoolSize" value="10" />
<property name="idleConnectionTestPeriod" value="30000" />
<property name="testConnectionOnCheckin" value="true" />
<property name="preferredTestQuery" value="SELECT 1 FROM DUAL" />
<property name="user" value="${DB_USR}" />
<property name="password" value="${DB_PWD}" />
</bean>

En esta configuración DB_URL, DB_USR y DB_PWD están definidas como variables de entorno a nivel de usuario.

Espero que os sirva de ayuda.

Un saludo y a disfrutar!


25 ago. 2011

Spring ROO - HOWTO (Parte I)

 Hoy toca probar la última release de Spring-ROO (1.1.5.RELEASE), como ya comenté en un post anterior, sigo sin entender (del todo) el motivo por el que Springsource se ha embarcado en el crear un proyecto de desarrollo rápido tras la compra de la empresa que desarrollaba Grails.


Como no puede ser de otra forma vamos a dar los primeros pasos con Spring-ROO a través de un Mini HOWTO con el ejemplo tipo de la agenda. Para ello debemos seguir unos sencillos pasos que intento explicar a continuación.

Preparar el entorno de trabajo


Lo primero que debemos hacer es descargarnos la última versión de Spring-ROO de la página de Spring y seguir los siguientes pasos para su instalación:
  1. Se descomprime el archivo descargado en una ruta que podamos recordar.
    (en mi caso USER_HOME/java/spring-roo-1.1.5.RELEASE)
  2. Establecemos la variable de entorno ROO_HOME apuntando a la ruta anterior.
  3. Añadimos ROO_HOME/bin al path de nuestro sistema para que reconozca los comandos de spring-roo.
  4. En caso de que tengáis un sistema Linux o un MAC os recomiendo que creéis un enlace simbólico a roo.sh

    ln -s ${ROO_HOME}/bin/roo.sh /usr/bin/roo
Ahora comprobamos que tenemos el sistema preparado para poder empezar a trabajar. Las necesidades mínimas son:
  1. Una instalación de JDK5 o JDK6 de Sun, JRocket o IBM y la variable de entrono $JAVA_HOME establecida.
  2. Apache Maven 2.0.9 o superior instalado y con el PATH configurado correctamente.
Con esto ya podemos probar que tenemos instalado y listo para usar spring-roo, para ello en un terminal ejecutamos lo siguiente:

roo quit

Si obtenemos una salida parecida a la que muestro a continuación es que todo ha ido bien y podemos empezar con el howto.

14 jun. 2011

Instalar Oracle 11gR2 XE beta en ubuntu 10.04

Hoy por necesidad me he visto obligado a instalar una versión de oracle en mi portatil, insisto en el tema de la obligación, ya que en un portatil un Oracle es demasiado "pesado", con lo que he tenido que hacer la configuración de la misma, para ello me he basado en varios HOW-TOs que he encontrado googleando, por eso voy a intentar resumirlo en este post.
Para configurar la versión Express Edition de Oracle 11g en ubuntu 10.04 x64 se deben seguir los siguientes pasos:
  1. Descargar la versión linux de 64 bits de la página oficial de Oracle
  2. Una vez descargada se descomprime el zip.
  3. Se instalan las librerías necesarias para continuar con los siguientes pasos, estas son alien y libaio1 para la instalación ejecutamos en una consola

    sudo apt-get install alien libaio1

1 abr. 2011

Grails - El Santo Grial del Desarrollo rápido (Parte II)

Vamos a continuar con la serie de Grails, si recordáis en la parte I de esta serie empezamos a crear una aplicación que servía para gestionar los contactos. Al final de la entrada anterior se decía que había que hacer click en ContactoController, pero porque no hacer las cosas algo mejor, es decir, porque no introducir una pantalla de login y un menú, y si además ponemos una gestión de usuarios y permitimos dar de alta, modificar y eliminar usuarios, habremos realizado una aplicación que tendrá más aspecto de aplicación.

Esto es justo lo que vamos a hacer en esta parte de la mini-serie.

Vamos a comenzar paso a paso nuestra “nueva” aplicación de Contactos.
  1. Creación de los usuarios, grupos y permisos.
Para este proceso vamos a utilizar un plugin de los diversos plugins que posee grails (http://www.grails.org/Plugins), en concreto uno llamado Stark-Security. Ahora bien, y ¿cómo utilizo un plugin? Pues muy sencillo, simplemente hay que instalarlo, y para instalarlo hay que ejecutar un simple comando de grails.
grails install-plugin stark-security
Al ejecutar este comando tenemos la siguiente salida por consola:
grails install-plugin stark-security
Welcome to Grails 1.2.0 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /Users/javi/java/grails-1.2.0

Base Directory: /Users/javi/proyectos/grails-howto-series/agenda
Resolving dependencies...
Dependencies resolved in 1433ms.
Running script /Users/javi/java/grails-1.2.0/scripts/InstallPlugin.groovy
Environment set to development
Reading remote plugin list …
Plugin list out-of-date, retrieving..
[delete] Deleting: /Users/javi/.grails/1.2.0/plugins-list-core.xml
[get] Getting: http://svn.codehaus.org/grails/trunk/grails-plugins/.plugin-meta/plugins-list.xml
[get] To: /Users/javi/.grails/1.2.0/plugins-list-core.xml
....................................................
[get] last modified = Wed Feb 02 03:16:38 CET 2011
Reading remote plugin list ...
Plugin list out-of-date, retrieving..
[delete] Deleting: /Users/javi/.grails/1.2.0/plugins-list-default.xml
[get] Getting: http://plugins.grails.org/.plugin-meta/plugins-list.xml
[get] To: /Users/javi/.grails/1.2.0/plugins-list-default.xml
......................................................................................
[get] last modified = Thu Feb 10 06:22:21 CET 2011
[copy] Copying 1 file to /Users/javi/.grails/1.2.0/projects/agenda.parte2/plugins
Installing plugin stark-security-0.4.3
[mkdir] Created dir: /Users/javi/.grails/1.2.0/projects/agenda.parte2/plugins/stark-security-0.4.3
[unzip] Expanding: /Users/javi/.grails/1.2.0/plugins/grails-stark-security-0.4.3.zip into /Users/javi/.grails/1.2.0/projects/agenda.parte2/plugins/stark-security-0.4.3
Executing stark-security-0.4.3 plugin post-install script ...
Plugin stark-security-0.4.3 installed
Plug-in provides the following new scripts:
------------------------------------------
grails stark-security-install-full
grails stark-security-install-without-dao
Si os fijáis en las dos últimas líneas de la salida anterior, veréis que este plugin ofrece dos nuevos comandos, el que nos interesa es stark-security-install-full, así que ahora tenemos que ejecutar el nuevo comando que nos ha aportado este plugin.
grails stark-security-install-full


23 mar. 2011

Configurar Spring para uso de Datasources JNDI en JBOSS 6.0.0

He comprobado que crear DataSource JNDI para su uso con JBoss en una aplicación basada en Spring tiene tela marinera, en concreto con Spring 3.0.3.RELEASE, si además añadimos un par de frameworks más...


Hoy me he encontrado con la problemática de configurar un DataSource, bueno realmente era alguno más, pero la solución se aplica a uno y luego todos a disfrutar del "Cut&Paste", despues de googlear y goolglear he visto que no hay ningún sitio en el cual te digan de forma clara como hacerlo, así que he decidido intentar ponerlo yo en unas pocas palabras, así que vamos a ello.


Lo primero que hay que hacer es crear un archivo XML en $JBOSS_HOME/server/default/deploy/ que siga la nomenclatura <nombre_datasource>-ds.xml el contenido del archivo debe ser como el siguiente (en esta configuración se ha definido un pool con un mínimo y máximo):