<ul><li>Creando plugins con  </li></ul>
Me presento <ul><li>Mario García </li></ul><ul><ul><li>Desarrollador Freelance Java/Groovy </li></ul></ul><ul><ul><li>Comm...
¿Que vamos a ver? <ul><li>¿Por qué Griffon? </li></ul><ul><li>Plataforma de Plugins </li></ul><ul><li>Plugins y Addons </l...
<ul><li>¿Por qué Griffon? </li></ul>
¿Por qué Griffon ? <ul><li>Lo reconozco, el desarollo de Swing era... </li></ul><ul><ul><ul><li>Desestructurado </li></ul>...
¿Por qué Griffon ? <ul><li>Es decir, una pesadilla :< </li></ul>
¿Por qué Griffon ? <ul><li>Yo quería divertirme y escuche una musica... </li></ul>
¿Por qué Griffon ? <ul><li>…  me tome una copita y asi encontré... </li></ul>
¿Por qué Griffon ? <ul><li>SWING + GROOVY + GRAILS ~= </li></ul>
¿Por qué Griffon ?
¿Por qué Griffon? <ul><li>Site :  http://griffon.codehaus.org </li></ul><ul><li>Licencia : Apache 2.0 </li></ul><ul><li>1e...
<ul><li>Plataforma de Plugins </li></ul>
Plataforma de plugins <ul><li>Lo que Griffon no hace, lo hacen sus plugins </li></ul><ul><ul><li>http://griffon.codehaus.o...
<ul><li>Plugins y Addons </li></ul>
Plugins y Addons <ul><li>Plugin y Addon </li></ul><ul><ul><li>Plugins </li></ul></ul><ul><ul><ul><li>Agregan nuevas librer...
<ul><li>Creación de un plugin </li></ul>
Creación de un plugin <ul><li>Pasos para crear un plugin (Sin addons) </li></ul><ul><ul><li>Creación del proyecto del plug...
Creación de un plugin <ul><li>Creación del proyecto* </li></ul><ul><ul><li>griffon create-plugin nombrePlugin </li></ul></...
Creación de un plugin <ul><li>Creación del proyecto. </li></ul><ul><ul><li>Partes más importantes </li></ul></ul><ul><ul><...
Creación de un plugin <ul><li>Creación del proyecto </li></ul><ul><ul><li>Partes más importantes: Descriptor Plugin </li><...
Creación de un plugin
Creación de un plugin <ul><li>Agregación de dependencias </li></ul><ul><ul><li>Manualmente  en el directorio lib </li></ul...
Creación de un plugin <ul><li>Agregación de dependencias </li></ul><ul><ul><li>BuildConfig.groovy (fragmento) </li></ul></ul>
Creación de un plugin <ul><li>Agregación Scripts </li></ul><ul><ul><li>Podemos  agregar scripts  que generen código </li><...
Creación de un plugin <ul><li>Agregación de scripts </li></ul><ul><ul><li>Todos los scripts están en “scripts” </li></ul><...
Creación de un plugin <ul><li>Agregación de scripts </li></ul><ul><ul><li>Creación de fichero de configuración en la insta...
Creación de un plugin <ul><li>Empaquetado del plugin </li></ul><ul><ul><li>Empaquetamos el plugin para poder testearlo ant...
Creación de un plugin <ul><li>Empaquetado del plugin </li></ul>
Creación de un plugin <ul><li>Empaquetado del plugin </li></ul><ul><ul><li>Probamos a instalar el plugin </li></ul></ul><u...
Creación de un plugin <ul><li>Empaquetado del plugin </li></ul><ul><ul><li>Veremos como se ha creado el fichero Solr.groov...
<ul><li>Creación de un Addon </li></ul>
Creación de un Addon <ul><li>Hasta ahora: </li></ul><ul><ul><li>Gracias al plugin  nuestra aplicación </li></ul></ul><ul><...
Creación de un Addon <ul><li>Pasos a seguir: </li></ul><ul><ul><li>Creación de un nuevo Addon   </li></ul></ul><ul><ul><ul...
Creación de un Addon <ul><li>Creación del Addon* </li></ul><ul><ul><li>griffon create-addon nombreAddon </li></ul></ul><ul...
Creación de un Addon <ul><li>Creación del Addon </li></ul><ul><ul><li>El fichero del Addon por lo general tiene comentados...
Creación de un Addon <ul><li>Inyección de funcionalidad en Runtime </li></ul><ul><ul><li>Ciclo de vida del Addon </li></ul...
Creación de un Addon <ul><li>Inyección de funcionalidad en Runtime </li></ul><ul><ul><li>La lista de posibles elementos qu...
Creación de un Addon <ul><li>Inyección de funcionalidad </li></ul><ul><ul><li>Vamos a inyectar una propiedad en todos los ...
Creación de un Addon <ul><li>Inyección de funcionalidad </li></ul><ul><ul><li>Inyección de método  withSolr </li></ul></ul...
Creación de un addon <ul><li>Inyección de funcionalidad </li></ul>
Creación de un addon <ul><li>Probamos el addon </li></ul><ul><ul><li>Volvemos a empaquetar el plugin </li></ul></ul><ul><u...
Creación de un addon <ul><li>Nuevo MVC (Vista) </li></ul>
Creación de un addon <ul><li>Nuevo MVC (Controlador) </li></ul>
Creación de un addon <ul><li>Y el resultado sería </li></ul>
<ul><li>Arquetipos </li></ul>
Arquetipos <ul><li>Caracteristicas </li></ul><ul><ul><li>Reutilización de estructuras de proyectos </li></ul></ul><ul><ul>...
Arquetipos <ul><li>Comandos </li></ul><ul><ul><li>create-archetype </li></ul></ul><ul><ul><ul><li>Crea la estructura del a...
Arquetipos <ul><li>Descriptor </li></ul><ul><ul><li>application.groovy </li></ul></ul><ul><ul><ul><li>En este fichero se d...
Arquetipos <ul><li>Templates </li></ul><ul><ul><li>Estos templates se utilizarán para crear nuevos artefactos. La resoluci...
Arquetipos <ul><li>Ejemplo simple* </li></ul><ul><ul><li>Creamos un arquetipo que haga que el proyecto tenga como dependen...
Arquetipos <ul><li>Creamos el arquetipo </li></ul><ul><li>Editamos el fichero application.groovy </li></ul><ul><ul><li>Des...
Arquetipos
Arquetipos <ul><li>Empaquetamos </li></ul><ul><ul><li>griffon package-archetype </li></ul></ul><ul><ul><li>Nos creara un f...
Arquetipos
Un consejo antes de terminar... <ul><li>http://www.manning.com/almiray/   </li></ul>
Q&A
Próxima SlideShare
Cargando en…5
×

Greach 2011 : Creando Plugins Con Griffon

972 visualizaciones

Publicado el

Creación de plugins en Griffon. Presentación realizada en Greach 2011.

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
972
En SlideShare
0
De insertados
0
Número de insertados
113
Acciones
Compartido
0
Descargas
12
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Greach 2011 : Creando Plugins Con Griffon

  1. 1. <ul><li>Creando plugins con </li></ul>
  2. 2. Me presento <ul><li>Mario García </li></ul><ul><ul><li>Desarrollador Freelance Java/Groovy </li></ul></ul><ul><ul><li>Commiter de Griffon </li></ul></ul><ul><ul><li>Otros proyectos en los que me entretengo: </li></ul></ul><ul><ul><ul><li>Anibal: http://anibal.sourceforge.net </li></ul></ul></ul><ul><ul><ul><li>Viewa: http://www.viewaframework.org </li></ul></ul></ul><ul><ul><li>Twitter : @marioggar </li></ul></ul><ul><ul><li>Blog : desmontandojava.blogspot.com </li></ul></ul>
  3. 3. ¿Que vamos a ver? <ul><li>¿Por qué Griffon? </li></ul><ul><li>Plataforma de Plugins </li></ul><ul><li>Plugins y Addons </li></ul><ul><li>Creación de un plugin </li></ul><ul><li>Creación de un addon </li></ul><ul><li>Creación de un arquetipo con el plugin creado </li></ul>
  4. 4. <ul><li>¿Por qué Griffon? </li></ul>
  5. 5. ¿Por qué Griffon ? <ul><li>Lo reconozco, el desarollo de Swing era... </li></ul><ul><ul><ul><li>Desestructurado </li></ul></ul></ul><ul><ul><ul><ul><li>Practica inexistencia de frameworks </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Cada aplicación un framework XD </li></ul></ul></ul></ul><ul><ul><ul><li>Verboso </li></ul></ul></ul><ul><ul><ul><ul><li>Mucho código para realizar las mismas tareas. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Hey! Es Java puro ¿Qué esperabais? </li></ul></ul></ul></ul><ul><ul><ul><li>Dificíl en el manejo de hilos </li></ul></ul></ul><ul><ul><ul><ul><li>Dificultad en el manejo del E vent D ispatch T hread </li></ul></ul></ul></ul>
  6. 6. ¿Por qué Griffon ? <ul><li>Es decir, una pesadilla :< </li></ul>
  7. 7. ¿Por qué Griffon ? <ul><li>Yo quería divertirme y escuche una musica... </li></ul>
  8. 8. ¿Por qué Griffon ? <ul><li>… me tome una copita y asi encontré... </li></ul>
  9. 9. ¿Por qué Griffon ? <ul><li>SWING + GROOVY + GRAILS ~= </li></ul>
  10. 10. ¿Por qué Griffon ?
  11. 11. ¿Por qué Griffon? <ul><li>Site : http://griffon.codehaus.org </li></ul><ul><li>Licencia : Apache 2.0 </li></ul><ul><li>1er release : (0.0) – 10 Sept. 2008 ( Basado en Grails 1.1) </li></ul><ul><li>Última distribución : 0.9.4 </li></ul><ul><li>Sospechosos habituales... </li></ul><ul><ul><li>Andres Almiray </li></ul></ul><ul><ul><li>Danno Ferrin </li></ul></ul>
  12. 12. <ul><li>Plataforma de Plugins </li></ul>
  13. 13. Plataforma de plugins <ul><li>Lo que Griffon no hace, lo hacen sus plugins </li></ul><ul><ul><li>http://griffon.codehaus.org/Plugins </li></ul></ul><ul><ul><li>Mas de 170 plugins y contando </li></ul></ul><ul><ul><li>Categorias </li></ul></ul><ul><ul><ul><li>Persistencia </li></ul></ul></ul><ul><ul><ul><li>Componentes </li></ul></ul></ul><ul><ul><ul><li>Look and Feel </li></ul></ul></ul><ul><ul><ul><li>Internacionalización </li></ul></ul></ul><ul><ul><ul><li>Testing </li></ul></ul></ul><ul><ul><ul><li>Y unas cuantas más </li></ul></ul></ul>
  14. 14. <ul><li>Plugins y Addons </li></ul>
  15. 15. Plugins y Addons <ul><li>Plugin y Addon </li></ul><ul><ul><li>Plugins </li></ul></ul><ul><ul><ul><li>Agregan nuevas librerias a nuestro proyecto </li></ul></ul></ul><ul><ul><ul><li>Agregan nuevos scripts (p.e: crear nuevos ficheros) </li></ul></ul></ul><ul><ul><ul><li>Agregan Addons </li></ul></ul></ul><ul><ul><li>Addons </li></ul></ul><ul><ul><ul><li>Agregan funcionalidad en tiempo de ejecución. </li></ul></ul></ul><ul><ul><ul><li>Ejemplo: Inyectar un servicio a todos los controladores cada vez se instancien. </li></ul></ul></ul>
  16. 16. <ul><li>Creación de un plugin </li></ul>
  17. 17. Creación de un plugin <ul><li>Pasos para crear un plugin (Sin addons) </li></ul><ul><ul><li>Creación del proyecto del plugin </li></ul></ul><ul><ul><li>Agregacion de dependencias </li></ul></ul><ul><ul><li>Agregación/Modificación de scripts </li></ul></ul><ul><ul><li>Empaquetado plugin </li></ul></ul><ul><ul><li>Plugin Release </li></ul></ul>
  18. 18. Creación de un plugin <ul><li>Creación del proyecto* </li></ul><ul><ul><li>griffon create-plugin nombrePlugin </li></ul></ul><ul><ul><li>Se creará la estructura del proyecto </li></ul></ul><ul><ul><ul><li>Un plugin tiene la misma estructura que un proyecto Griffon normal </li></ul></ul></ul><ul><ul><li>Codigo del ejemplo del plugin y del Addon en: </li></ul></ul><ul><ul><ul><li>http://code.google.com/p/griffon-examples/ </li></ul></ul></ul>
  19. 19. Creación de un plugin <ul><li>Creación del proyecto. </li></ul><ul><ul><li>Partes más importantes </li></ul></ul><ul><ul><ul><li>Descriptor Plugin </li></ul></ul></ul><ul><ul><ul><li>Declaración o agregación </li></ul></ul></ul><ul><ul><ul><li>de dependencias </li></ul></ul></ul><ul><ul><ul><li>Agregación de scripts </li></ul></ul></ul><ul><ul><ul><li>Agregación de código fuente </li></ul></ul></ul>
  20. 20. Creación de un plugin <ul><li>Creación del proyecto </li></ul><ul><ul><li>Partes más importantes: Descriptor Plugin </li></ul></ul><ul><ul><ul><li>Metainformación sobre el plugin </li></ul></ul></ul><ul><ul><ul><ul><li>Versión del plugin (Por si necesitas una versión en concreto) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Versión de Griffon compatible </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Dependencias con otros plugins </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Tipo de licencia </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Toolkit compatible (Swing, SWT...) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Compatibilidad de plataformas </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Datos sobre el autor </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Información sobre la funcionalidad del plugin </li></ul></ul></ul></ul>
  21. 21. Creación de un plugin
  22. 22. Creación de un plugin <ul><li>Agregación de dependencias </li></ul><ul><ul><li>Manualmente en el directorio lib </li></ul></ul><ul><ul><li>Declarativamente en </li></ul></ul><ul><ul><ul><li>BuildConfig.groovy </li></ul></ul></ul>
  23. 23. Creación de un plugin <ul><li>Agregación de dependencias </li></ul><ul><ul><li>BuildConfig.groovy (fragmento) </li></ul></ul>
  24. 24. Creación de un plugin <ul><li>Agregación Scripts </li></ul><ul><ul><li>Podemos agregar scripts que generen código </li></ul></ul><ul><ul><ul><li>create-domain-class en el caso de gorm (Grails) que crea una clase que tiene capacidad de persistencia </li></ul></ul></ul><ul><ul><li>Podemos modificar/agregar ficheros de configuración a través de los scripts de instalación/desinstalación/actualización del plugin </li></ul></ul><ul><ul><ul><li>Por ejemplo, queremos agregar la configuración del servidor Solr al que vamos a consultar. </li></ul></ul></ul>
  25. 25. Creación de un plugin <ul><li>Agregación de scripts </li></ul><ul><ul><li>Todos los scripts están en “scripts” </li></ul></ul><ul><ul><ul><li>Por defecto existen </li></ul></ul></ul><ul><ul><ul><ul><li>_Install.groovy </li></ul></ul></ul></ul><ul><ul><ul><ul><li>_Uninstall.groovy </li></ul></ul></ul></ul><ul><ul><ul><ul><li>_Upgrade.groovy </li></ul></ul></ul></ul>
  26. 26. Creación de un plugin <ul><li>Agregación de scripts </li></ul><ul><ul><li>Creación de fichero de configuración en la instalación a través de _Install.groovy </li></ul></ul>
  27. 27. Creación de un plugin <ul><li>Empaquetado del plugin </li></ul><ul><ul><li>Empaquetamos el plugin para poder testearlo antes de realizar un release. </li></ul></ul><ul><ul><li>griffon package-plugin </li></ul></ul><ul><ul><li>Importante copiar la ruta de creación del empaquetado del plugin, para poder instalarlo en nuestras aplicaciones locales </li></ul></ul>
  28. 28. Creación de un plugin <ul><li>Empaquetado del plugin </li></ul>
  29. 29. Creación de un plugin <ul><li>Empaquetado del plugin </li></ul><ul><ul><li>Probamos a instalar el plugin </li></ul></ul><ul><ul><li>Veremos también como se descargan las dependencias </li></ul></ul>
  30. 30. Creación de un plugin <ul><li>Empaquetado del plugin </li></ul><ul><ul><li>Veremos como se ha creado el fichero Solr.groovy </li></ul></ul>
  31. 31. <ul><li>Creación de un Addon </li></ul>
  32. 32. Creación de un Addon <ul><li>Hasta ahora: </li></ul><ul><ul><li>Gracias al plugin nuestra aplicación </li></ul></ul><ul><ul><ul><li>Puede utilizar el api de Solrj </li></ul></ul></ul><ul><ul><ul><li>Puede recoger la configuración de un fichero (Solr.groovy) </li></ul></ul></ul><ul><ul><li>Pero nos gustaría : </li></ul></ul><ul><ul><ul><li>No tener que repetir el codigo de conexión </li></ul></ul></ul><ul><ul><ul><li>Hacer las consultas mas a-la Gorm </li></ul></ul></ul>
  33. 33. Creación de un Addon <ul><li>Pasos a seguir: </li></ul><ul><ul><li>Creación de un nuevo Addon </li></ul></ul><ul><ul><ul><li>Vamos a crear un addon dentro de nuestro plugin </li></ul></ul></ul><ul><ul><li>Inyectar funcionalidad en tiempo de ejecución </li></ul></ul><ul><ul><ul><li>En cada instancia de controlador un builder que permita realizar criterias básicas a-la Gorm. </li></ul></ul></ul>
  34. 34. Creación de un Addon <ul><li>Creación del Addon* </li></ul><ul><ul><li>griffon create-addon nombreAddon </li></ul></ul><ul><ul><li>Esta ejecución creará un nuevo fichero denominado [NombreDelAddon]GriffonAddon.groovy </li></ul></ul>
  35. 35. Creación de un Addon <ul><li>Creación del Addon </li></ul><ul><ul><li>El fichero del Addon por lo general tiene comentados: </li></ul></ul><ul><ul><ul><li>Todos los metodos que hacen referencia al ciclo de vida </li></ul></ul></ul><ul><ul><ul><li>Todos los posibles puntos de inyección en tiempo de ejecución </li></ul></ul></ul>
  36. 36. Creación de un Addon <ul><li>Inyección de funcionalidad en Runtime </li></ul><ul><ul><li>Ciclo de vida del Addon </li></ul></ul><ul><ul><ul><li>No vamos a deternos aqui, ya que nuestro Addon no depende del ciclo de vida del Addon </li></ul></ul></ul><ul><ul><ul><li>Orden de ejecución de metodos </li></ul></ul></ul><ul><ul><ul><ul><li>addonInit(app) { ... } </li></ul></ul></ul></ul><ul><ul><ul><ul><li>addonPostInit(app) { ... } </li></ul></ul></ul></ul><ul><ul><ul><ul><li>addonBuilderInit(app) { ... } </li></ul></ul></ul></ul><ul><ul><ul><ul><li>addonBuilderPostInit(app) { ... } </li></ul></ul></ul></ul>
  37. 37. Creación de un Addon <ul><li>Inyección de funcionalidad en Runtime </li></ul><ul><ul><li>La lista de posibles elementos que puede agregar un addon a una aplicación en tiempo de ejecución son: </li></ul></ul><ul><ul><ul><li>factories : Nodos que pueden ser interpretados en cualquier miembro de un grupo MVC </li></ul></ul></ul><ul><ul><ul><li>methods : Metodos adicionales agregados a todos los miembros de un grupo MVC </li></ul></ul></ul><ul><ul><ul><li>props : Propiedades agregadas a todos los m. de un g. MVC </li></ul></ul></ul><ul><ul><ul><li>mvcGroups : Nuevos grupos MVC </li></ul></ul></ul><ul><ul><ul><li>events : Manejadores de eventos en tiempo de ejecución </li></ul></ul></ul><ul><ul><ul><li>XXXDelegates : Diferentes estrategias para construcción de nodos. </li></ul></ul></ul>
  38. 38. Creación de un Addon <ul><li>Inyección de funcionalidad </li></ul><ul><ul><li>Vamos a inyectar una propiedad en todos los controladores para poder realizar consultas de tipo criteria contra una instancia de solr como esta: </li></ul></ul>
  39. 39. Creación de un Addon <ul><li>Inyección de funcionalidad </li></ul><ul><ul><li>Inyección de método withSolr </li></ul></ul><ul><ul><ul><li>La inyección se produce a través del addon creado (AlaGormGriffonAddon) </li></ul></ul></ul><ul><ul><ul><li>Vamos a leer el fichero de configuración que crea el plugin al instalarlo. Solo una vez cuando se inicia la aplicación. </li></ul></ul></ul><ul><ul><ul><li>Vamos a inyectar el metodo withSolr en cada instancia que se cree de un controlador. Este metodo withSolr devolverá una instancia de un builder creado por nosotros (SolrjBuilder) </li></ul></ul></ul><ul><ul><ul><li>El código fuente que vamos a agregar estará en la carpeta src/main dentro de nuestro plugin (SolrjBuilder/ConstraintsBuilder). </li></ul></ul></ul>
  40. 40. Creación de un addon <ul><li>Inyección de funcionalidad </li></ul>
  41. 41. Creación de un addon <ul><li>Probamos el addon </li></ul><ul><ul><li>Volvemos a empaquetar el plugin </li></ul></ul><ul><ul><ul><li>Nota: Podemos empaquetar solamente el addon </li></ul></ul></ul><ul><ul><li>Volvemos a instalar el plugin </li></ul></ul><ul><ul><ul><li>Primero voy a desinstalarlo e instalarlo otra vez </li></ul></ul></ul><ul><ul><ul><ul><li>Importante: Al trabajar en local cuidado con la cache de ivy, puede jugar malas pasadas. </li></ul></ul></ul></ul><ul><ul><li>Creamos un grupo MVC en nuestra aplicación para probar los criterias contra un servidor Solr </li></ul></ul>
  42. 42. Creación de un addon <ul><li>Nuevo MVC (Vista) </li></ul>
  43. 43. Creación de un addon <ul><li>Nuevo MVC (Controlador) </li></ul>
  44. 44. Creación de un addon <ul><li>Y el resultado sería </li></ul>
  45. 45. <ul><li>Arquetipos </li></ul>
  46. 46. Arquetipos <ul><li>Caracteristicas </li></ul><ul><ul><li>Reutilización de estructuras de proyectos </li></ul></ul><ul><ul><ul><li>Una serie de grupos MVC comunes (Login) </li></ul></ul></ul><ul><ul><ul><li>Plugins (P.e. En esta empresa siempre se utiliza activeJdbc para conexión a base de datos, y ldap para la autenticación) </li></ul></ul></ul><ul><ul><ul><li>Lo que se os ocurra compartir. </li></ul></ul></ul>
  47. 47. Arquetipos <ul><li>Comandos </li></ul><ul><ul><li>create-archetype </li></ul></ul><ul><ul><ul><li>Crea la estructura del arquetipo. </li></ul></ul></ul><ul><ul><li>package-archetype </li></ul></ul><ul><ul><ul><li>Prepara el arquetipo para ser compartido </li></ul></ul></ul><ul><ul><li>install-archetype </li></ul></ul><ul><ul><ul><li>Instala el arquetipo para poder ser utilizado. NO instala el arquetipo en tu aplicación </li></ul></ul></ul>
  48. 48. Arquetipos <ul><li>Descriptor </li></ul><ul><ul><li>application.groovy </li></ul></ul><ul><ul><ul><li>En este fichero se define aquello que va a ser instalado, en la aplicación que siga este arquetipo. </li></ul></ul></ul>
  49. 49. Arquetipos <ul><li>Templates </li></ul><ul><ul><li>Estos templates se utilizarán para crear nuevos artefactos. La resolución de estas plantillas sigue este orden: </li></ul></ul><ul><ul><ul><li>local a la aplicación -> $basedir/src/templates/artifacts </li></ul></ul></ul><ul><ul><ul><li>Por un plugin -> $pluginHome/*/src/templates/artifacts </li></ul></ul></ul><ul><ul><ul><li>Arquetipo local -> ~/.griffon/<version>/archetypes/<name>/templates/artifacts </li></ul></ul></ul><ul><ul><ul><li>Arquetipo global -> $griffonHome/archetypes/<name>/templates/artifacts </li></ul></ul></ul>
  50. 50. Arquetipos <ul><li>Ejemplo simple* </li></ul><ul><ul><li>Creamos un arquetipo que haga que el proyecto tenga como dependencias los plugins de viewaswing y ldap </li></ul></ul><ul><ul><ul><li>Creamos el arquetipo </li></ul></ul></ul><ul><ul><ul><li>Agregamos en application.groovy los plugins </li></ul></ul></ul><ul><ul><ul><li>Empaquetamos e instalamos el arquetipo </li></ul></ul></ul><ul><ul><ul><li>Creamos una aplicación que siga el arquetipo que acabamos de crear </li></ul></ul></ul>
  51. 51. Arquetipos <ul><li>Creamos el arquetipo </li></ul><ul><li>Editamos el fichero application.groovy </li></ul><ul><ul><li>Descomentamos la linea donde se recupera los metadatos de la aplicación </li></ul></ul><ul><ul><li>Agregamos las lineas para nuestros plugins </li></ul></ul>
  52. 52. Arquetipos
  53. 53. Arquetipos <ul><li>Empaquetamos </li></ul><ul><ul><li>griffon package-archetype </li></ul></ul><ul><ul><li>Nos creara un fichero zip en la carpeta del arquetipo </li></ul></ul><ul><li>Instalamos </li></ul><ul><ul><li>griffon install-archetype URL/ruta del arquetipo </li></ul></ul><ul><ul><li>Si lo ejecutamos en la misma carpeta donde esta el fichero zip solamente deberemos ejecutar </li></ul></ul><ul><ul><ul><li>griffon install-archetype nombrefichero.zip </li></ul></ul></ul><ul><ul><li>Esto lo instalará en el repositorio local </li></ul></ul><ul><li>Creamos una aplicacion con el arquetipo </li></ul>
  54. 54. Arquetipos
  55. 55. Un consejo antes de terminar... <ul><li>http://www.manning.com/almiray/ </li></ul>
  56. 56. Q&A

×