Ir al contenido principal

Cómo desplegar Roo en Cloud Foundry

Cloud Foundry es la primera solución abierta de PaaS (Plataforma como Servicio), creada por VMware. Soporta múltiples frameworks, proveedores y servicios de aplicaciones, todo ello enfocado a la nube.

Cómo instalar el add-on de Cloud Foundry
Spring Roo nos ofrece una completa integración con esta plataforma: nos permite acceder a Cloud Foundry, ver las aplicaciones, desplegar aplicaciones, obtener estadísticas, etc... (hay más de 30 comandos). Para poder hacer todo esto desde línea de comandos Roo, tenemos que instalar el add-on de Cloud Foundry.Desde nuestra consola Roo ejecutamos:
roo> pgp automatic trust
roo> addon install bundle --bundleSymbolicName org.springframework.roo.addon.cloud.foundry


Cómo desplegar nuestra aplicación en la nube

Ahora que ya tenemos instalado el add-on, vamos a subir a Cloud Foundry la aplicación de la pizzería que hicimos con Roo en el post anterior:

1) Nos creamos una cuenta en Cloud Foundry.
2) Nos logueamos desde la consola de Roo:
roo> cloud foundry login --email XXX --password YYY
3) Desplegamos nuestra aplicación
roo> cloud foundry deploy --appName probandoROO --path /target/PruebaRoo-0.1.0.BUILD-SNAPSHOT.war

Para ver las aplicaciones que tenemos desplegadas, ejecutamos: cloud foundry list apps



4) Arrancamos la aplicación
roo> cloud foundry start app --appName probandoROO

Y ya tendríamos nuestra aplicación en la nube!!!




Bonus Track
Por si os apetece más ejecutar cloud foundry desde "fuera" de Roo, los pasos a seguir son:

1) sudo apt-get install ruby1.9.1
2) sudo gem install vmc
3) vmc target api.cloudfoundry.com
4) vmc login
5) Desplegamos la aplicación con: vmc push --path=target/XXX.war

Para más información de los comandos: vmc -h

Comentarios

Entradas populares de este blog

Leer un fichero properties con java.util.Properties

Los ficheros .properties son simples ficheros de texto que se suelen utilizar para guardar parámetros de configuración, en forma de pares clave-valor. Ejemplo de fichero: configuration.properties #User parameters user.name=Ana user.language=spanish Si estamos usando Java, podemos utilizar la clase java.util.Properties para leer los parámetros de este fichero: private static final String USER_NAME = "user.name"; private static final String USER_LANGUAGE = "user.language"; public void showProperties() throws Exception { Properties p = new Properties(); InputStream is = App.class.getResourceAsStream("/configuration.properties"); p.load(is); is.close(); String userName = p.getProperty(USER_NAME); String userCountry = p.getProperty(USER_LANGUAGE); System.out.println("userName: "+userName); System.out.println("userLanguage: "+userCountry); } Después de ejecutar este método, obtendríamos la siguiente salida: ...

JSF 2.0: Managed Beans (III)

Anteriormente ya hemos visto que cuando se declara un bean, tenemos que darle un scope: application, session, view, request, none. Un scope es un mapeo entre nombres y objetos que se almacena durante un determinado periodo de tiempo. En este post vamos a explicar cada uno de ellos. Si declaramos el bean desde el fichero faces-config.xml, indicamos el scope en <managed-bean-scope> y si queremos hacerlo con anotaciones, utilizaremos @{Application,Session,View,Request,None}Scoped Application Con este scope, se guarda la información durante toda la vida de la aplicación web, independientemente de todas las peticiones y sesiones que se realicen. Este bean se instancia con la primera petición a la aplicación y desaparece cuando la aplicación web se elimina del servidor. Si queremos que el bean se instancie antes de que se muestre la primera página de la aplicación, usamos la propiedad eager a true. @ManagedBean(eager=true) ó <managed-bean eager="true"> Session...

JSF 2.0: Message bundles

Los message bundles son ficheros .properties que guardan mensajes del tipo clave=valor. Si centralizamos todos los mensajes de nuestra aplicación en estos ficheros, es más fácil poder localizarlos si queremos realizar algún cambio y también nos ayuda para la internacionalización de la aplicación. Ejemplo: messages.properties (en src/java/com/examples) con dos mensajes name=Tu nombre: age=Tu edad: ¿Cómo los declaramos? 1) En cada página JSF donde lo necesitemos <f:loadBundle basename="com.examples.messages" var="msgs"/> 2) De manera global en faces-config.xml <application>      <resource-bundle>           <base-name>com.examples.messages</base-name>           <var>msg</var>      </resource-bundle> </application> Esta opción es más eficiente ya que sólo crea el bundle una v...