Gestión Maestro-Detalle con Spring ROO y Capa de Presentación Flex

Ayer comentábamos en este post como hacer una gestión Maestro-detalle con ROO.

En el post de hoy vamos a cambiar la Capa de Presentación para que sea Flex:

1) Creo una carpeta nueva (AsignacionPersonas-Flex por ejemplo)

2) Copio a la nueva carpeta de la carpeta en la que hice la gestión con Spring MVC el fichero log.roo

3) Cambio el nombre al fichero por import.roo y lo edito:

// Spring Roo 1.1.0.RELEASE [rev 793f2b0] log opened at 2011-01-13 00:45:45

project –topLevelPackage es.luismi.roo.asignacionpersonas –projectName AsignacionPersonasFlex

persistence setup –provider HIBERNATE –database HYPERSONIC_PERSISTENT

entity –class ~.domain.Proyecto testAutomatically

field string nombre –notNull –sizeMin=8 –sizeMax=8

field date fechaInicio –type java.util.Date –notNull

field date fechaFin –type java.util.Date

field string descripcion

// [failed] field string descripcion –sizeMax=255

entity –class ~.domain.Empleado –testAutomatically

field string nombre –notNull–sizeMin=8 –sizeMax=50

field string apellidos –notNull–sizeMin=8 –sizeMax=50

field number codigoEmpleado –type java.lang.Integer –min=10000

field reference –fieldName proyectoActual –type ~.domain.Proyecto –class ~.domain.Empleado

field set –class ~.domain.Empleado –fieldName listaProyectos –element ~.domain.Proyecto

perform eclipse

He eliminado esta línea

>controller all –package ~.web

Y cambiado el nombre de proyecto

4) Lanzo el script import.roo vía:

>roo script import.roo

5) El release actual del plugin de Flex para Spring Roo no es compatible con Spring ROO 1.1, aunque podemos bajarnos un snapshot compatible desde:

http://maven.springframework.org/snapshot/org/springframework/flex/roo/addon/org.springframework.flex.roo.addon/1.0.0.BUILD-SNAPSHOT/org.springframework.flex.roo.addon-1.0.0.BUILD-20110113.020022-196.jar

6) Copio el jar descargado (org.springframework.flex.roo.addon-1.0.0.BUILD-20110113.020022-196.jar) a %ROO_HOME%/bundle

7) Lanzo consola roo

>roo

8) Compruebo que el addon se ha añadido con

>osgi ps list

9) Añado un Repositorio a Proyecto Maven (pom.xml):

<repository>

<id>spring-snapshot</id>

<name>Spring Portfolio Snapshot Repository</name>

<url>http://maven.springframework.org/snapshot</url>

<releases>

<enabled>false</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</repository>

10)

11) Añado soporte Flex al proyecto

>flex setup

12) Genero Vistas con scaffolding:

>flex remoting all –package ~.model

13) Hago un >perform package para que se descargue todas las dependencias para poder ejecutar Flex. Son muchas, así que tomároslo con paciencia 🙂

14) Desde fuera de la consola lanzo Jetty con Maven:

>mvn jetty:run-exploded

Lanzamos Jetty con el proyecto en modo carpeta, ya que el proyecto Flex incluye varios SWFs y es más pesado desplegarlo como WAR:

15) Ejecutamos en un navegador: http://localhost:8080/AsignacionPersonasFlex/AsignacionPersonasFlex_scaffold.html

Voilá:

Desafortunadamente el soporte de Flex a Spring ROO aún está en desarrollo, y el addon sobre Spring Roo 1.1 tiene varias deficiencias…en nuestro caso que no gestiona bien las relaciones n-m 😦

Todo esto quedará solucionado cuando salga la release del addon para Spring Roo 1.1.

Deja un comentario