SpringSource has released version 1.0 of Cloud Foundry integration for Eclipse, allowing developers to manage Cloud Foundry applications without leaving the IDE. Cloud Foundry is an open source PaaS solution developed by VMware/SpringSource (currently in Beta) that supports multiple programming languages (including both Java and Scala).
There are four different ways an application may be deployed to a Cloud Foundry instance:
From the command line via the VMC tool
As part of a Maven build via the Cloud Foundry Maven plugin
From the Spring Roo Interface if the application uses Spring Roo
Directly from the Eclipse IDE via the Cloud Foundry Eclipse plugin
The last case is the most interesting one for Java/Scala programmers using Eclipse since it offers them an integrated solution where the IDE is used both for development and management/deployment of Cloud Foundry applications. The solution comes in the form on an Eclipse plugin that can be installed either on STS (the Eclipse powered SpringSource IDE) or Eclipse Indigo via the Eclipse Marketplace. Notice that the Cloud Foundry plugin is self-contained and can be installed on a plain Eclipse installation, that does not contain the Spring-IDE plugin.
Once installed, the Cloud Foundry plugin utilizes the WTP infrastructure of Eclipse. Cloud Foundry instances are defined as "servers" and applications are deployed in a similar manner to normal JavaEE application servers. If you want to use the VMware hosted version of Cloud Foundry you should register first in order to obtain an account.
Cloud Foundry applications can use one of the many supported services (e.g MySQL, PostgreSQL, MongoDB). The initialization and binding of these services to deployed applications can be performed in a visual way from configuration screens similar to those that hold settings for applications servers. It is also possible to view remote files (e.g. logs) that reside in the managed Cloud Foundry instance. Finally it is possible to debug applications provided that they run in a locally hosted Cloud Foundry or a Micro instance.
Whilst it is great to see Cloud Foundry tooling continuing to expand we do feel that this version could be improved in a couple of ways. For one thing there is a minor usability issue in that in the first screen where a Cloud Foundry instance is configured you are always expected to define the "server" as localhost. In the second screen you define the actual instance which can very well be the hosted version from VMware (contradicting the setting from the previous step). We found this somewhat confusing.
A more serious issue however is the kind of Eclipse projects that you can deploy in a Cloud Foundry instance via the plugin. According to the documentation the following project types are supported:
1. Java Web
However a newly created Eclipse project with the "Java Web" facet is based by default on Servlet Spec 3.0 which is not supported from the Cloud Foundry plugin at the time of writing. Only Servlet Spec 2.5 is supported. This option cannot change however after project creation. So one must delete all Eclipse specific project settings from the application and re-create the facet using version 2.5 which works as expected.
Commercial Cloud Foundry pricing and the exit out of Beta is expected to be announced during this year (2012).