Archive for the ‘nexopen’ Category
NexOpen Tools 1.0.0-m2 liberado
La gente de NexOpen sigue trabajando sin descanso. Es un proyecto del que cada día estoy más lejos, ya que mi camino me ha llevado hacia los lenguajes dínámicos de script (Django, y RoR, por qué no?). Sin embargo, me hace ilusión ver que el proyecto evoluciona.
Las Tools de NexOpen son un conjunto de plugins, wizards y editores para Eclipse que te facilitan la vida a la hora de trabajar con NexOpen framework. Recordaré que NexOpen es un framework java, basado en Spring y utilizando las tecnologías más punteras en EJB, instrumentalización, ORM… Es una verdadera virguería y un paso adelante a la hora de realizar proyectos complejos J2EE.Podéis descargaros las tools siguiendo las instrucciones de su página.
Enhorabuena chicos, seguid adelante!
Novedades NexOpen
Desde que hace ya más de medio año probara las mieles de python y django he dejado el proyecto de NexOpen de lado. Pero el otro día que hice esos cambios en el amigo invisible y tuve que tocar java me acordé de él. NexOpen no ha parado, sigue estando muy vivo, cada vez más, ya que en la empresa del Doctor lo utilizan en varios proyectos y poco a poco va creciendo.
El framework se ha estabilizado en la versión 0.4.x,y sobre ha mejorado mucho en documentación. La versión 0.5.0 saldrá próximamente, posiblemente antes de fin de año, con varias funcioanlidades interesantes.
Lo que sí está a punto de salir es la versión 1.0.0-m2 de las Tools. Las tools son un conjuntos de wizards, editors y plugins para Eclipse que facilitan muchísimo la tarea de programar con el Framework. Se ha puesto mucho interés en la corrección de bugs previos y en la estabilidad de la plataforma. Las tools en sus primeras versiones era bastante inestable por culpa de Maven2, esperemos que esto esté corregido. Otras mejoras de interás:
- Mejor integración con los servidores de aplicaciones. Se permiten WARs y EARS explodeds en JBoss, en Tomcat se han corregido bugs referente a la version 6.0.x
- Soporte para la generación de CRUDs a partir de Hibernate Tools. Se generan entities, facades, controllers (soporte para Spring MVC, Struts1 and Struts2) las JSPs con soporte para i18n. Es decir, todo lo necesario desde la capa de usuario hasta la BBDD.
- Se ha añadido Logging support en los wizards de los Service Components. Además tenemos una NexOpen Nature que te permite corregir errores que puedas hacer desarrollando los service components
- Generación de log interno en el IDE para mejorar notificación de errores en el IDE. Importante para futuras mejoras.
- Mejora de la integración con Maven2. Se ha creado un Maven2 editor que finalizaremos mejoraremos en la 1.0.0-rc1.
- Soporte para herramientas de QA como PMD.
- Mejoras en el Modules Editor (Se pueden añadir componentes del frwk, manejar los servidores, hibernate etc…..)
Y más cosas. Además, desde el mismo eclipse hay un acceso directo a la wiki de NexOpen, para mayor comodidad.

Buena suerte javeros, esta es vuestra herramienta!
Ecosistema NexOpen
Ayer estuve repasando todas las aplicaciones adicionales que usamos para que NexOpen sea realidad, y poco a poco hemos ido construyendo un ecosistema interesante. Ahí va la lista:
- Sourceforge. En primer lugar, SourceForge, que es el hosting principal de nuestro proyecto. Además de ofrecernos el alojamiento de la web del proyecto (hecha con wordpress), tenemos alojada también el javadoc de la API, el servidor de SVN, las releases (con sus respectivos mirrors) y los foros del proyecto.
- JIRA. Tenemos nuestro JIRA en el que reportamos las incidencias tanto del framework, de las Tools, y ahora, como novedad, la consola de servicios! Tenemos más de 100 incidencias registradas (somos humanos), y casi todas resueltas (somos unas máquinas)!
- Confluence. La wiki del proyecto. Toneladas de información y muchas ideas para avanzar. Imprescindible darse una vuelta por ahí.
- Bamboo. Bamboo es un Continuous Integration Server, de la gente de Jira y confluence, que permite monitorizar el correcto desarrollo del server, ya que con su integración en el SVN valida que el código sea siempre correcto (o al menos que compile y ejecute los unit tests!)
- FishEye. Otra aplicación de Atlassian. Permite navegar de una forma más rica por el SVN del proyecto
- Continuum. El servidor de Continuous Integration de Apache. Lo teníamos antes que Bamboo, pero lo seguimos manteniendo por ahora para los proyectos de ejemplo, tutoriales del frwk..
- Artifactory. Un servidor de los .jars, mojos y archetypes del proyecto, para su uso desde Maven. De esta forma te evitas tener que bajarte las releases a tu disco. Apunta a este server, y maven se sincronizará. (Lee esto para saber cómo)
- Eclipse Update Site. Un pequeño update site para bajarte las Tools de NexOpen a tu Eclipse personal! (Explicación aquí)
Lo que empezó como un proyecto pequeño se está convirtiendo en algo muy serio. La calidad en el desarrollo siempre fue una de las directivas de NexOpen, y para dar ejemplo, usamos toda esta lista de herramientas para intentar que tú, Desarrollador, te sientas confortable y seguro trabajando con NexOpen.
Enjoy!
Rails para todo
Ruby On Rails, Groovy On Rails, Tapestry On Rails… Claramente es la tendencia. Pero no nos ceguemos con el marketing de los rails. Maven tiene un filosofía muy similar, y es tan potente o más (la gestión de librerías no tiene color) que los anteriores. Los frameworks basados en Rails tienen además el componente convención. Ya lo he dicho antes, para qué reinventarte la estructura de directorios o la nomemclatura de las clases, si casi todos los proyectos tienen los mismos componentes?
Ante esta avalancha de nuevos frameworks quería romper una lanza a favor de NexOpen, que aunque no lleva rails, si que tiene sus Tools! Con NexOpen Tools, que están muy integradas con Maven, se puede construir un proyecto de CRUDs tan rápido como RoR y los otros. La creación del proyecto es como la de los rails, se usan convenciones, aunque no son estrictas (te las puedes saltar, pero a tu riesgo!) y esta semana anunciaremos el hito del wizard que te genera un CRUD de forma automática. Identifica tus clases del modelo, eliges las que te interesan y te crea los facades, controllers y vistas necesarias para tener el mantenimiento hecho! Sin tocar una línea de código.
La diferencia entre este framework es su tamaño. NexOpen está pensado para hacer proyectos con grandes necesidades, escalables, de alta disponibilidad, clusterizables… Es java puro, no basado en lenguaje interpretado, pero aún y todo sigue la línea de los rails, ofrecer una herramienta que resuelva rápidamente las dificualtades de arranque de cualquier proyecto (configuración bbdd, servidor web, de las clases repetitivas, del testing, del logging…). En el confluence hemos listado una serie de ventajas de nexopen.
Evaluadlo y decidme algo!
NexOpen Tools 1.0.0-m1
Se me había olvidado comentarlo, pero NexOpen Tools 1.0.0-m1 está listo para usar! Leed la noticia y las instrucciones de uso en la web de nexopen, ya que mi no me quedan fuerzas… Estoy enfermo, en plena Navidad, que bien!
Feliz Navidad a los que me lean!
NexOpen 0.4.0 a punto…
De hecho ya está terminada y tagged, sin embargo estamos puliendo detalles de distribución, es decir, queremos crear un paquete que lo contenga todo: las fuentes, los binarios, ejemplos, la doc. Para eso estamos probando maven assembly, y tocando un par de poms para que todo vaya como la seda. Además todavía hay algo de documentación para mejorar, pero lo gordo ya está.
En esta release, además de los temas técnicos que son bastante interesantes, hemos hecho un enorme esfuerzo en documentar el framework, por eso el retraso de un mes!. Tenemos una reference guide de 110 páginas, que permitirá a los nuevos desarrolladores tener una base para empezar a trabajar. Además los video tutoriales que hay también ayudan para entender cómo de fácil es usar las NexOpen Tools. También estamos metiendo caña al confluence (nuestra wiki) y ya empezamos a tener un montón de tickets resueltos en el jira.
Para oficializar esta nueva release he hecho algunos cambios en la web del proyecto, en documentación y downloads sobre todo. He subido los binarios al sourceforge, pero la verdad, si trabajamos como se ha de trabajar, es decir con proyectos maven, incluyendo en el pom general del proyecto el repo de NexOpen (http://nexopen.org/artifactory/repo) se bajan las librerías de forma automática y punto!
Falta por subir el assembly completo y a lo mejor una última versión de la doc, y entonces escribiré la noticia oficial en la web de NexOpen. Pero vamos, si hay algún impaciente, ya puede bajárselo, que nada va a cambiar…
NexOpen IDE en Linux (Ubuntu)
Finalmente lo he conseguido, he tardado mucho, me ha costado instalarlo y reinstalarlo por lo menos 10 veces, pero ha merecido la pena. El NexOpen IDE 1.0.0-m1 (previa!) instalado en mi Ubuntu 7.10 Gutsy Gibbon…
Cómo se consigue eso? Pues bien, hay que instalar los plugins y la feature sobre un Eclipse 3.2 con las features de Callisto activadas. Véanse los siguientes pasos:
- Desde un Ubuntu sin ninguna instalación previa de Eclipse (si tienes alguna bórrala con el synaptic!) instálalo usando aptitude (en gutsy te instala la 3.2, ojo en futuras releases, en caso de estar en otra versión bájatelo de algún mirror, por ejemplo este):
- Modifica los permisos de escritura de varios directorios. No se si se necesitan todos pero por si acaso…:
- Arranca el eclipse, ve a Help/Software Updates/Find and Install…
- Search for new features to install…
- Elige el Callisto Discovery Site y selecciona todas las features menos las de C++. Acepta e Instalas
- Bájate este zip con los plugins y el jar de la feature. Descomprime el zip de los plugins y los dejas en /
usr/local/lib/eclipse/plugins. Y la feature en/usr/local/lib/eclipse/features - Añade soporte para junit. Bájate este zip y copia el contenido en
/usr/lib/eclipse/plugins
sudo aptitude install eclipse
sudo touch /usr/local/lib/eclipse/.eclipseextension
sudo chmod 2775 /usr/local/lib/eclipse/.eclipseextension
sudo chown root:staff /usr/local/lib/eclipse/.eclipseextension
sudo chmod a+w /usr/lib/eclipse/plugins
sudo chmod a+w /usr/lib/eclipse/features
sudo chmod a+w /usr/local/lib/eclipse/plugins
sudo chmod a+w /usr/local/lib/eclipse/features
Y ya está. Creo que no se me olvida nada. Ahí tenemos el NexOpen IDE igualito al de güindows. Todo hay que decir que el eclipse en Ubuntu me parece más feo, por los tipos de letras, los espacios en el árbol de proyecto… El L&F es peor que el de Windows, pero la performance y la tranquilidad de estar en Linux no tiene precio.
Ya no hay excusa para no programar j2EE de verdad!
ACTUALIZACIÓN 2/12: Añadido el punto 7, soporte para jUnit 4.
Nuevo L&F para NexOpen
He aprovechado la inminente salida de la versión 0.4.0 de NexOpen para cambiar el L&F del proyecto, ahora más sobrio, sencillo y claro, creo. Pero además, he fusionado el IDE (ahora tools) con el Framework, teniendo un única web. Más fácil para mantener, pero sobre todo más compacto para entender la filosofía del proyecto.
Y además, tercera novedad del día, he incluido el apartado de la metodología de trabajo. Desde el principio hemos dicho siempre que NexOpen no es solo una herramienta, sino que es una forma de trabajar, de cómo hacer bien los proyectos para que salgan como deban. Por eso, aunque todavía tengo la web un poco verde, ya va tomando el aspecto definitivo que debe tener.
Este fin de semana creo que anunciaremos definitivamente la 0.4.0 (de hecho te la puedes bajar ya del trunk, está lista), publicaremos la reference guide, explicaremos todas las features que cubre el proyecto…
Queda mucho por hacer todavía, pero lo que hay hecho ya es mucho. Y útil!
Por cierto, la hojita es bonita coincidencia! Venía con el theme de wp Peace On Earth!
Cómo hacer un deploy en artifactory
Artifactory es un servidor que hace de repositorio para maven 2. En este repositorio se almacenan todas las librerias que se utilizan en un proyecto maven 2, pero también puede servir para crear un repositorio para que terceras personas puedan utilizar las librerías que tu has creado, como es el caso de NexOpen.
Artifactory tiene una interfaz gráfica para poder administrar, deployar, ver, buscar… librerías, pero en caso de que quieras usar la linea de comandos para hacer un deploy, o si lo quieres integrar en un IDE (por ejemplo, en NexOpen IDE) necesitas conocer cómo invocarlo.
Veamos un ejemplo:
mvn deploy:deploy-file -DgroupId=org.codehaus.mojo -DartifactId=maven-weblogic-plugin -Dversion=1.0 -Dpackaging=jar -Dfile=C:\Users\Bosco\.m2\repository\org\codehaus\mojo\maven-weblogic-plugin\1.0\maven-weblogic-plugin-1.0.jar -DrepositoryId=nexopen-repo -Durl=http://ip:port/artifactory/plugins-releases@repo
Veamos los argumentos uno a uno:
- groupId= El grupo, según lo hayamos escrito en el descriptor del pom.xml
- artifactId=Lo que diga el pom.xml
- version=Lo que diga el pom.xml
- packaging=jar, war, ear…
- file=ruta hasta el fichero que quieres subir
- repositoryId=nombre del repositorio, que luego usaremos en el settings.xml
- url=ruta http del aritfactory. Nota en este caso que utilizo el plugins-releases porque quiero introducir un plugin en esta carpeta que previamente he creado en artifactory! (sino retorna un error 400). Por último termina con el @repo!
Además, en tu directorio de maven, en conf, hay un archivo llamado settings.xml. En este archivo debemos introducir el usuario y password del artifactory. Si no lo poneis correctamente, el error que os dará será un 401:
<server>
<id>nexopen-repo</id>
<username>user</username>
<password>pwd</password>
</server>
Pues eso, espero que os sea útil
Continuum
Continuum es un servidor de Continuous Integration que permite automatizar la construcción de proyectos y ejecución de tests unitarios.
Consiste en un pequeña aplicación (web) desde donde se administran los proyectos que queremos supervisar. Admite proyectos Maven 1 y 2, Ant y shell scripts.
La forma de funcionar es informando de la ruta donde se aloja el proyecto, generalmente en un SVN o CVS. Para proyecto Maven 2, que es la experiencia que tengo, se indica el pom.xml correspondiente.
Automáticamente, cuando detecta que se produce un cambio en el repositorio ejecuta un mvn clean install (configurable), y de esta forma prueba que lo que se ha subido es correcto. Y envía un email (configurable, admite jabber!) al responsable del proyecto para informarle del resultado del test.
Esto permite tener un mayor control sobre el estado del proyecto, es decir, proporciona calidad y facilita la gestión del proyecto, pudiendo detectar a tiempo posibles errores.
Todo esto para decir que NexOpen está monitorizado por un Continuum, y además NexOpen IDE proporciona un plugin para facilitar la publicación y monitorización de proyectos en el Continuum que se desee utilizar.


