In the previous blog post, we implemented the UI of our JuZcret application. We are now able to look at Secret on the secret wall and share a new secret via the “add secret” form. But what would a social feature be without any user interaction? Nothing…

That’s why, during this step, we’ll add two very original social features to our JuZcret application: the “comment” feature and the “like” feature. Crazy! 😉

By implementing these new features we will learn, among other things, how to use Ajax with Juzu, interact with Portlet Container, and add an EDIT mode to our Portlet.

In the previous blog post, we learned how to add some functionality to our application. We can now see a list of secrets and share new ones. It works but it’s ugly… so during this blog post we will focus on the UI of JuZcret.

JavaScript has become more and more popular over the last few years, and without any doubt its usage continues to increase every day. A portal is an aggregation platform focusing on aggregating applications in the browser thanks to portlets or gadgets. This means it will also integrate JavaScript in the browser: each application comes with its own markup and JavaScript code, which more and more often is JavaScript.

GateIn 3.5 is a mature system and uses modular JavaScript integration capabilities providing key features for web applications. Let’s begin with a short introduction to JavaScript modules.

Four months ago we launched cloud-ide.com, the first free online service eXo has ever provided, and its success has been incredible. Our goal: to be the preferred path for developers to Platform-as-a-Service (PaaS) deployments.

Today we are unveiling a major upgrade to the service, with more than 75 new features. I would like to show you my top 5 favorites.

1) Git Support

Git popularity is huge and more and more projects use it to manage their source code. Even some PaaS, such as Heroku or Openshift Express, use it as an application deployment paradigm.

Supporting Git in eXo Cloud IDE was clearly our number 1 priority, and we focused on improving the integration we announced in May at Red Hat Summit. Now we support most of the protocol commands, all natively integrated within eXo Cloud IDE.

As you can see in the first screenshot, we support many Git commands that are exposed in a new Git menu in the IDE. It is possible to init or clone a remote repository, add a file to the index, create a branch, add remote repositories and push the code to different branches on different remote repositories! And at every step of the way, you can view the current status of your repo.

To be able to support private Git repositories, and to communicate with them using the SSH protocol, we have also added the capability to create private and public keys for dedicated domains, and the ability to upload existing private keys and bind them to a domain. In the next screenshots, you can see that I have created 2 private/public keys for the Heroku and GitHub domains, as well as uploaded 2 private keys for Red Hat OpenShift and CloudBees.

It is also possible to browse the version history of Git repositories, see the changes and who made them!

2) OpenShift and Heroku Support

The primary goal of eXo Cloud IDE is to be able to develop apps in the cloud, then deploy them to the different PaaS available in the market. With this upgrade, we now support 3 different PaaS, each that has a different deployment model.

For Heroku and OpenShift, we use some REST commands from the PaaS menu (see the next screenshot) to create applications bound to a Git repository.

Then we use the Git menu to clone and push modifications to this remote repository, such as the OpenShift repo shown in the next screenshot.

A developer first has to create a Java project in eXo Cloud IDE. Then he has to init that repository and push the code to the CloudBees Git repository (after having registered its public SSH key in the service). From here, we leverage CloudBees DEV@cloud, which uses Maven and Jenkins to manage both the build of the Java WAR artifacts and the deployment to CloudBees RUN@cloud PaaS.

4) Java / JSP support

Java is the language of choice for most eXo developers. In the first version of Cloud IDE a developer could write some REST API in Java using the JAX-RS specification. He could also store structured data inside a Java Content Repository (JCR).

With this upgrade, we now also support standard Java classes (Servlets or POJOs) and Java Server Pages (JSP).

As before, every file has some color syntaxing, code completion and outline. The next screenshot shows those features for a JSP page.

Once the Java and JSP have been written it is possible to deploy them to CloudBees DEV@cloud, which manages the build (it can also manage any unit tests that you add in the Cloud IDE) and the deployment of the generated WAR.

As you can see, you can now create, test and deploy standard Java projects directly in the Cloud.

5) Ruby and PHP Support

With the launch of Red Hat OpenShift Express, we announced support for the Ruby language within eXo Cloud IDE. A developer can quickly create a Ruby file; the IDE provides some color syntaxing, outline and auto completion. A Ruby project can then be deployed to either OpenShift or Heroku, as described previously.

Red Hat OpenShift also supports the PHP language, so it was a great opportunity for us to add support for this dynamic language to our catalog. And of course, we have some color syntaxing, outline and auto completion.