Browse Month by February 2016

First Mobile Cloud Service project in Spain is now in prodution!

This is an important week in the mobile scene where Mobile World Congress is taking place in Barcelona, I think there is no better time to announce that the first Oracle Mobile Cloud Service in Spain is now in production. If you don’t know what Mobile Cloud Service is, you can check all my previous posts here. Posts about Mobile Cloud Service.

In avanttic we developed this project combining Oracle Mobile Application Framework with Oracle Mobile Cloud Service, which has allowed us to implement a mobility solution for the sales force of Industrial Farmacéutica Cantabra (IFC) in no time. The application will allow IFC to gain efficiency in their sales process and increase the turnover.

About the technology:


Oracle Mobile Application Framework is a hybrid mobile framework that enables developers to rapidly develop multi-platform single-source applications Oracle MAF provides a visual and declarative development experience and maximizes code reuse resulting in faster development of mobile applications.”


Oracle Mobile Cloud Service is Oracle’s Mobile Backend as a Service (MBaaS) and enables companies to create and deploy scalable, robust, and secure mobile applications quickly and easily, and empowers developers to leverage enterprise IT systems—without having to get IT involved”








ADF: Different ways to display validation messages

This post is about the different ways that we have to display validation messages when, for example, an input component is marked as required or when other component such as af:validateDoubleRange is used to handle the validation.

We can have a simple form like this:

By default, if there is only one validation error, the validation message will be displayed like this:

But if we have more than one validation error, the messages will be displayed in a popup.

If we want to change the way those messages are displayed we can use a couple of components.
  • af:messages

 We have a couple of properties to configure.

    • globalOnly: When set to true, validation messages will not be displayed within this af:messages component.
    • inline: Whether the messages will be displayed in a popup or inline wherever this component is placed

We can add this component, for example, in the top of the form and whenever we get a validation error al messages will be displayed in that area.

  • af:message

 The second option is to add as many af:message as components we have so we can display validation errors inline next to the component that produces the error.

It doesn’t matter if we have 1 or more errors, all messages will be displayed inline, next to the component.

Oracle Mobile Cloud Service New version has been released

New Oracle Mobile Cloud Service version has been released where we can find, a redisign of the application and some improvements that we were missing the the previous version (1.0). This new version 1.1 matches 16.1.1

if you want to know more about Oracle Mobile Cloud Service you can check my previous post: Oracle Mobile Cloud Service overview

The first changes that we can see is the design of the application. In the new version the menu is on the left hand side and you can collapse it. You can also change between environments with the combo box in the header of the application.

Another change we find is in Mobile Backend authentication. In the previous version we were able to use HTTP Basic, but in the new version we can configure our Mobile Backend to use OAuth authentication.

Oracle said that more connectors will come in future releases. Until now we were able to integrate REST and SOAP web services, now we can integrate our Integration Cloud Service instance thanks to the new connector.

Analytics is other feature that has changed, nwo we can create custom reports so we can avoid to select the filters every time we want to see them.

Other new features that were introduced are:

  • We can now integrate out .NET and JavaScript applications thanks to the new SDKs.
  • We can configure some static values when deploying between environments in our Mobile Cloud Service instance by editing a properties file.
  • We can also export and import any artifact we create so the migration between instances is easier.
If you want to know more about the new version you can check: What’s new in Oracle Mobile Cloud Service

ADF 12.2.1: Publish and secure ADF Business Components as REST services

In ADF 12.2.1, released just before OOW, many new features were introduced, and one of them is to expose ADF Business Components as REST Web Services. You can check other ADF 12.2.1 features in my ADF 12.2.1 release post.
In this post I am going to publish and secure ADF BC as REST services.

The first thing we have to do is to configure a release version for REST. You can do this in adf.config.xml file.

In previous versions we could expose BC as SOAP web services in Application Module Web Services tab, and now we can choose also REST.
We can select the view instances and set a resource name.

A xml file will be automatically created where for example we can set the attributes we want to expose and also if we want to expose any custom methods that we have created in the view implementation classes.

A new project will be also created in our application RESTWebService. This is the project we have to deploy. Simply click on the project and click on run.

If we test the service with any client tool, for example, Postman, we can see that the service returns Departments data.

The next thing we are going to do is to secure the services. We have to configure ADF Security.

In the configuration wizard RESTWebService project must be selected.

After finishing the wizard we have to secure the resource by adding some roles or users.

The last step is to configure the rest URL pattern in web.xml file, under security tab.

Now we are ready to test. If we don’t set any authorization in the rest call we can see that a “401 – Unauthorized” is returned.

But if we configure HTTP basic authentication, Departments data is returned.