Generating code from UML with Eclipse
Feb 25, 10 by Juan Lebrijo about UML, Java, Eclipse, blog
Eclipse has a project called EMF (Eclipse Modelling Framework) cool for drawing UML2 Diagrams. But my goal in this post is to draw UML2 class diagrams and create the java skeleton for the classes. In the application architecture is recommended separate the domain model from services, business logic etc. EMF gives you the tool to create class diagrams and to generate the code with them. We can install EMF plugins in our Eclipse installation, or download the Modelling Eclipse bound. I recommend the second choice because is cleaner, at least to test. I left in the following link the final product of this post: Eclipse UML2 to code project. An now !! the show must start¡¡:Create a new project: File > New > Project... > Empty EMF Project In the model folder we creates: New > Other... > Ecore Tools > Ecore Diagram. We draw our model using the palette, and Properties view:
clases.jpg 29.9 KB
Is very intuitive to draw the diagram. In the association properties we put the numeral and mark "Is Containment" to do the composition association. Now we are going to create a transition file .genmodel type. Select .ecore file from the diagram we want generate, and right button New > Other... > Eclipse Modeling Framework > EMF Generator Model. In the file .genmodel we can generate the code as follows:
generar.jpg 9.87 KB
and .... !!! BOILA ¡¡¡ we have three packages:
generated.thumbnail.jpg 3.13 KB
Clicking in the last image you can see how ends the src folder:
  • classdiagram: Containing the model with interfaces in order to decouple the design.
  • classdiagram.impl: Model and Factory implementation to generate the classes.
  • classdiagram.util: AdapterFactory implementation.
Furthermore the implementation of the model, it generates code to implement Dependency injection with factories. The code has the JavaDoc comments, you will not forget write them. Puts all the getters/setters defined in the class diagram. Every methods annotated with @generated, if you don't wish the rewrote in the future you must delete the annotation. To read more about it, and UML2 modeling with Eclipse, and many more Eclipse/Java stuff I recomend us the Vogella web (great site).
Generando código a partir de UML con Eclipse
Feb 25, 10 by Juan Lebrijo about UML, Java, Eclipse, blog
Eclipse tiene un proyecto llamado EMF (Eclipse Modeling Framework) muy majo para dibujar diagramas UML2. Pero mi objetivo en este artículo es dibujar un diagramas de clases UML2 y generar el esqueleto de clases correspondiente. En la arquitectura de la aplicación se recomienda tener tus modelos de dominio separados de servicio, lógica de negocio etc. EMF te permite crear tu diagrama de clases y luego generarte el código correspondiente. Podemos instalarnos los plugins de EMF en nuestra inatalación de Eclipse, o descargarnos directamente la versión de Eclipse preparada para el modelado. Os recomiendo la segunda por ser más límpia, al menos para probar. Os dejo el proyecto producto final de este artículo: Eclipse UML2 to code project. Y ahora !! que empiece el espectaculo¡¡: Crea un nuevo proyecto: File > New > Project... > Empty EMF Proyect Dentro del directorio model nos creamos nuestro diagrama: New > Other... > Ecore Tools > Ecore Diagram. Nos dibujamos nuestro modelo utilizando la paleta, y la vista de properties:
clases.jpg 29.9 KB
Es muy intuitivo dibujar el diagrama. En la vista properties de la asociación introducimos la cardinalidad y marcamos "Is Containment" para hacer que sea de composición. Ahora tenemos que crear un fichero de transición tipo .genmodel. Seleccionamos el fichero .ecore del diagrama que queremos generar el código, y con el botón derecho New > Other... > Eclipse Modeling Framework > EMF Generator Model. Dentro del fichero .genmodel podemos generar código de la siguiente manera:
generar.jpg 9.87 KB
y .... !!! MAGIA ¡¡¡ tenemos tres paquetes:
generated.thumbnail.jpg 3.13 KB
Si pinchas la imagen anterior verás como se ha quedado el directorio src/ del proyecto:
  • classdiagram: Tiene el modelo a base de interfaces como mandan los cánones del desacoplamiento.
  • classdiagram.impl: Implementación del modelo y de la Factoria para generar las clases.
  • classdiagram.util: Implementación de la AdapterFactory.
Además del modelo con la implementación genera código para inyectar dependencias a través de factorias. Viene además con los comentarios de JavaDoc bien puestos para que los redactes. Todos los getters/setters de los atributos definidos en el diagrama de clases. Todos los métodos anotados con @generated, si no quieres que se reescriba en futuras regeneraciones de código le quitas la anotación. Para profundizar en este tema, y en el de modelado UML2 con Eclipse, y para otros muchos temas de Eclipse/Java os recomiendo la página de Vogella (es un crack el tío).
Streaming de video en Apache
Feb 15, 10 by Juan Lebrijo about Streaming, Web, Flash, blog
En este artículo muestro como me he montado un servidor de streaming tipo youtube con mi Apache. En realidad es una de las posibilidades de hacer pseudostreaming que existen . La idea era insertar un video en la página de un cliente, y mostrar mi video curriculum en mi servidor. Hay que instalar el paquete de desarrollo de Apache en nuestro Debian para compilar el módulo de streamming:
apt-get install apache-dev apache2-threaded-dev
Descargamos el módulo de streaming de flv, y lo compilamos con las herramientas anteriores:
apxs2 -i -a -c mod_flvx.c
Ahora tenemos que decir a Apache que cargue el módulo al arrancar, y que a todo fichero con extensión flv le genere un stream de video. Para ello creamos el fichero de carga flvx.load con el siguiente contenido:
LoadModule flvx_module /usr/lib/apache2/modules/mod_flvx.so
Y el fichero flvx.conf con el siguiente:
AddHandler flv-stream .flv
Para que se carguen al inicio los copiaremos en los directorios:
  • /etc/apache2/mods-available/
  • /etc/apache2/mods-enabled/
Para visualizar los vídeos necesitamos un visor swf que se descargue automáticamente el client, y gestione la transmisión del video. Nosotros hemos elegido el visor flash Flowplayer, ya que es suficientemente robusto y tiene una versión libre (GPL). Para utilizarlo en tu página debes añadir el JavaSpript descargado en el head del html:

 



 flowplayer("player", "../flowplayer-3.1.4.swf");