Grails Morph Plugin
Ayer hablaba de los pasos para desarrollar una micro-aplicación con Grails y cómo desplegarla en Morph, había un paso molesto teniendo que generar y modificar el web.xml para añadir un recurso, que había que quitar para ejecutar la aplicación en entornos diferentes al de producción en Morph.
Ya pensaba en un plugin para esto mientras escribía el post anterior, pero por el comentario de dahernan me lancé a crearlo, lo que sólo me llevó unos minutos. Es un pequeño plugin que modifica el web.xml dinámicamente, o mejor dicho, que participa en su generación.
El plugin se llama Morph Plugin, está disponible el para descargarlo y en el SVN está disponible el código. Aunque se vean muchos archivos, la chicha está en MorphGrailsPlugin.groovy:
def doWithWebDescriptor = { xml ->
def env = System.getProperty("grails.env")
if(env=="production"){
def resourceRef = xml.'resource-ref'
resourceRef+{
'description'("Morphlabs Datasource")
'res-ref-name'("jdbc/morph-ds")
'res-type'("javax.sql.DataSource")
'res-auth'("Container")
}
}
}
Para instalarlo sólo hay que descargarlo y ejecutar dentro del directorio de la aplicación este comando:
grails install-plugin elpathquesea/grails-morph-0.1.zip
El ejemplo de la TODO list ya está desplegado de esta manera, y ya no es necesario ejecutar el comando grails install-templates
para modifcar el web.xml ni tenemos ningún problema para seguir trabajando en local.
Si alguien está interesado en la creación de plugins para Grails, existe una guía para desarrolladores.