Wednesday Mar 04, 2015

Oracle MAF 2.1 Now in Eclipse Too

We are happy to announce the release of a new version of Oracle Enterprise Pack for Eclipse (OEPE)- the Oracle Eclipse tooling offering - with support for the latest Oracle MAF 2.1.

Download the new OEPE with MAF 2.1 Support Here.

This new version of OEPE is based on the latest Eclipse Luna SR2, and adds support for the full set of MAF 2.1 features including support for Java 8 compact profile 2, the new Xcode  and Android SDKs, and Cordova 3 plugin integration.

One unique feature added to the OEPE design time experience is a simplified way to interact with REST/JSON services. REST/JSON services are the preferred way to exchange information between your mobile application and remote server. A new wizard based interface in OEPE allows you to easily test REST URLs and then generate a simple set of POJO Java classes that access those services and working with the data types they use. You can then expose those classes as data controls and simply drag and drop them to the AMX pages to create the mobile UI.

Here is a 5 minutes demo that shows you the new REST features in action:

For more about this new version see the OEPE blog entry.

The OEPE Blog also has new entries describing some of the new features including:


Tuesday Sep 23, 2014

New Oracle Mobile Application Framework Version (2.0.1) Now Available

[Note] Updating to MAF 2.0.1 is necessary to stay current with the latest Apple iOS AppStore upload requirements.  Apple has just changed several upload requirements in the first part of September 2014, and MAF 2.0.1 has been enhanced to meet these ever-changing upload requirements that were frequently introduced without any prior warning.

 Hi, Oracle Mobile Developers:

As many of you are aware, in an effort to stay ahead of the rapid changing mobile technologies, the Oracle Mobile Application Framework team has switched to a rapid and agile released model.  This translates into roughly 2-3 months for new minor releases and major releases coming out roughly twice a year.  Therefore, in a little over 2 months after Mobile Application Framework first hits the street, a new minor version is now generally available.  Download instructions are available on the MAF Download page at the Oracle Technology Network.

Please note that the Eclipse Support for MAF 2.0.1 is being released as part of the Oracle Enterprise Pack for Eclipse (OEPE) update for the Eclipse Luna SR1. 

Let's take a look at the key new features:

Apple iOS 8 Support

As many of you know, Apple iOS 8 was released just last week.  The MAF team has been testing with beta and GM builds of the iOS 8, and finally against the release version of iOS 8.  We are pleased to announce that iOS 8 is officially supported for MAF 2.0.1.

One thing to note, however, is that the final release version of iOS 8 contains some late breaking changes that cause permissions request dialog boxes to be displayed.  For example, if you are running an application such as Google Maps, you will be prompted to allow it to access your location even if you are not using the app.  For MAF applications, you will see permission requests for "Notifications".  The exact dialog box you will see as you navigate around the application would contain the text "<Your Application Name> would like to send you notifications".  This notification refers to the ability for MAF applications to, for example, set the badging count on the application icon.  In MAF 2.0.0 and 2.0.1, the permission will be requested regardless whether the APIs to set badging count is actually used in your application.   For a future release of MAF, we are planning to add a switch to allow developer to decide whether the local Notification permission should be requested or not.

Please note that you must continue to use the latest version of Xcode 5.x to deploy your MAF application.  This does not impact the functionality nor upload/approval of your application.  Please do not upgrade to Xcode 6 as of yet.

Full Xcode 6 support is planned for the next release. 

Enterprise Application Management and Security Enhancements

With MAF 2.0.1, there is tighter integration with Oracle Mobile Security Suite (OMSS) to manage iOS version of MAF applications.  Mobile Application Framework by itself provides robust encryption and tight integration with enterprise security infrastructure.  However, when you need Mobile Application Management, Data Leak Policy Enforcement, and Containerization support, Oracle Mobile Security Suite is Oracle's recommended solution.  With MAF 2.0.1, securing MAF application with OMSS is as simple as clicking a check box in the Deployment Profile Dialog Box, and the deployment process automatically generates the iOS binary (ipa file), wraps the binary with Oracle Secure Workspace container, and signs the application with the distribution certificates and provisioning profiles.  

Deployment Integration with OMSS

As both OMSS and MAF provide encryption features, MAF 2.0.1 adds a number of internal enhancements to ensure compatibility between encryption mechanisms between the two products.  While you could use OMSS tools to wrap a MAF application built using previous versions in the past, it is necessary to disable certain security policy features.  With MAF 2.0.1, all of the Data Leak Security Policies can be enabled and enforced against a MAF 2.0.1 application.

Please note that currently containerization support is limited to iOS platform only - Android support for MAF-based applications is planned for the next patch set release of Oracle Mobile Security Suite.

Enhanced Tooling Support

  • Integrate JDeveloper Run/Debug configurations with MAF: JDeveloper users are used to using the “Run Configurations” feature in order to test their code.  Previously in MAF, this was never hooked up and the only way to run an app was to deploy it via the applications menu.  Now the run/debug configurations are setup to build/deploy and run the applications in either release or debug mode. 

AMX Component Enhancements

There are also a number of enhancements for AMX Components, for both data display and visualization:

  • Ability for ListView component to have multiple items (cards) per row: Have the ability to show multiple "cards" on a row in a list and show dividers and an indexer.  This blends well with the data paging and other concepts that exist in the list already but allow for a variety of different layouts.
  • Consistent Support for static data in DVT Components: Most DVT components use the stamping mechanism when rendering contents based on collection model data, which works fine today.  MAF adds the ability to define the component structure statically by enumerating the elements corresponding to data items (e.g. charDataItem elements for charts, or timelineItems for timeline series).  However, this mechanism only exists for Chart component in MAF 2.0.1, but not in Sunbust, Treemap and Timeline. MAF 2.0.1 adds consistent support across all these DVT components.
  • Ability to align a popup to a marker on a Geomap: You can now anchor the display of an amx:popup to a DVT geographic map markers. As of today, they can display the popup as an outcome of a marker action event, but they cannot anchor the popup to the marker.
  • Shaded area option on the DVT Component Line Chart: DVT Chart has recently added the option to display a shaded area below the line.  MAF 2.0.1 enhances this support with with semi-transparent color covering the area under the line. 
  • Vertical Status Meter Gauge: MAF 2.0.1 adds a new type of DVT Gauge called Vertical Status Meter Gauge. 
  • Spark chart line and marker enhancements in MAF: In MAF 2.0.1, Spark Charts lines now adds the ability to set the line width, line style and line type  For Spark Chart data markers, there is now ability to set the marker shape, marker size, marker border color.  

Thank you again for using Oracle Mobile Application Framework to accelerate mobile application development.  Please let us know if you have more questions on the MAF Community on OTN.


The Mobile Product Management Team 

Tuesday Sep 09, 2014

Developing MAF Applications with OEPE

Developing MAF Applications


Oracle Enterprise Pack for Eclipse - OEPE

As previously mentioned in Blog Entry "Android and iOS development comes to OEPE 12.13.1",  MAF development has certainly come to Oracle Enterprise Pack for Eclipse (OEPE). In many ways the development experience is very smooth and it has a clean interface.

I can understand the development community preference and mass adoption of this IDE and for those of us who have become familiar with JDeveloper, here are some points to get you started and introduce you to the Eclipse development experience with MAF.

Getting started ... OEPE Download

 As with the JDeveloper installation, OEPE should be downloaded and installed if a supported version of Eclipse is not already installed. I will use the "Happy Path" in this entry as the documentation does a great job in describing the various installation options.

As the download page states there are two versions of the OEPE but you should download your platform version  of the with Oracle Mobile Application Framework (MAF). This distribution provides the traditional OEPE feature set with additional design time tools for mobile application development, the MAF runtime, and MAF sample applications. i.e. No need to update your installation afterwards with the MAF component extensions.

Getting started ... OEPE SDK Configuration

 Working with OEPE for MAF is similar to JDeveloper and as such you first steps will be to configure OEPE with the path to your Mobile SDKs, provide any keystore information for Android or provisioning profiles for iOS projects.

The process is similar to what we've been used, except it provides some smart wizards to get us through the process. From the Preferences menu option, drill down to Oracle -> Mobile Application Framework and add you SDK settings.

IOS SDK Configuration


Android SDK Configuration

MAF Android SDK settings

Notice the ADD button on each screen which allows support of multiple SDKs, keystores, or provisioning profiles.

Getting Started ... Running a Sample ( O! I mean, an Example :D )

 A good place to start is by verifying your configuration by deploying a MAF Sample Application. This is another small but nice difference in the OEPE user experience. To Open and Run a sample, simple create a new MAF Example. No need to find and then extract the samples to a project folder.

Create a New MAF Example Application, if this menu option is not showing yet, then just select Example and then you should find the MAF Example template selection item. Clicking next presents a selection of examples to choose from and I would suggest for your first MAF Workspace to select them all and have them conveniently located in a single location.  Once you've selected the example you may create a Run or Debug Configuration to deploy and test your application to a configured target.

New MAF Example

Create a New MAF Example Application

The first thing you will notice after the application wizard is finished is 3 sets of folders and not just 2. The wizard generates the standard projects we are used to; The Application, & the ViewController or simply View projects. What is new is a new deployment project, or more correctly as per the documentation, the top-level assembly project. 

OEPE MAF Application Projects

OEPE MAF Project Folders

 The assembly project holds all the related packaging and deployment artifacts.  Some of the files we have had to search for in the application resources view in JDeveloper, such as default images, application, logging or connections settings which lived in the various META-INF directories, now have a respectable consolidated area.

When you are ready to Run or Debug your mobile app then this is the project to choose to have it deployed to your test simulator, emulator, device or production package. To ensure that all is well with your environment I would suggested running one of the examples now.

Getting Started ... Deploying a MAF Application in OEPE

 In this process we don't talk about deploying an application but running one on a configured target configuration. To do this, select your top-assembly project (!Application && !View) and select Run As or Debug As from the context menu. The configuration will defined the target to build and deploy the application. 

Create a configuration for each of your target by select the assembly project, target platform, type of target with the required settings. The Advanced options are used to further refine the application settings found under the Jdeveloper Application properties -> Deployment Profile -> Target (Android || IOS) Profile -> Target  (Android || IOS) Options -> Application Images.

Run Configuration for IOS

IOS Run Configuration

Once defined, simply click run.

To run a configuration afterwards, simply select it from under the Debug or Run icons in the IDE. Run and Debug Icons

I'll cover configuring the Debugger later, if it proves problematic for the community but from my brief encounter, debugging is quite nice under eclipse and there is no need to open a secondary application to view the log file being created or using the Android Monitor to filter out your application messages. 

Getting Started ... Creating a MAF Application in OEPE

So, what should you know about creating a MAF application in OEPE is that it is fairly similar to creating one in Jdeveloper, with the exception that you have the assembly project. You have different perspectives to perform the various tasks based on the type of component you are working on. You have the same relationship between the Application and the View projects with some small differences; such as the new MAF folder which houses the Data Control Manager, the editor interface for the DataControl.dcx file.

MAF Assembly Project MAF Application & View Projects

In the assembly project the MAF folder displays the MAF Application Editor, the editor for the maf-application.xml. This project also exposes the application resource and other configuration files, normally in the resources view in JDeveloper and the hidden .adf folder of the application.

After the creation wizard is complete you will have everything you need to start developing your MAF application, except the connections.xml file which is used to keep track of your application resource links. The easiest way to create this file is from the MAF Application Editor. Once the editor is open, select the security component or tab, for lack of a better term, and you will find a hyper link for the connections.xml file which is also used to store URL White Lists. Simply select the link and you will be prompted to create the connections.xml.

Create Connections.xml 

Create Connections.xml from the MAF Application Editor

Getting this created was the easy part and for  SOAP based resources this ease of use continues but for those focused on the consumption of Restful services, you will have to create the connection entry manually. I will provide a sample connect entry at the end for those of you who do not have access to Jdeveloper and the Rest Data Control wizard.

This feature will be released in a future version of OEPE for MAF but once the connection URL has been added, consuming, transforming and exposing the Restful services and data is the same process and APIs.

Some other differences to mention are:

  • The Palette area combines the Component and Data Control perspectives in Jdeveloper
  • The Structure pane is called Outline, which shows the xml document format and not the component type icons, which make it easier to develop pages/views as in JDeverloper. You can still edit your page/view in this manner but be careful to read the component text and its level before dropping your new component onto the page.
  • Flow actions, defined in your task flow, are only listed in the "Select a Value" / "Select an Outcome" screen and not in the drop down list of the action property. The pulldown only list "__back", the default return action
  • The Console window has multiple views and you will need to click / select it to switch between the build/deployment view and the running application log view
  • To debug your application you need to configure a Remote Java Application configuration to connect to the Debug port connection property
  • To Debug your application, start the application first then the debugger


 To wrap up, I'd just like to say that OEPE development experience for MAF is good and only lacks a few wizards found in JDeveloper. It supports multiple SDK environments and versions as well as keystone and provisioning profiles, which will come in handy for customer development projects.

The integrated log console view is great as well as the debugger for the application's java code. The only negative exception is the lack of wizard to add Rest URL connections, which I hope we will see released soon. For a first release this is great start and I look forward to seeing what the future holds for both OEPE and MAF development.

Please add your experiences and comments, so the PMs can keep improving OEPE and MAF in general.

Regards Sydney 

Sample Connections.xml with a Rest URL connection defined

<References xmlns="">
  <Reference name="SampleRestServicesURL" className="" xmlns="">
    <Factory className=""/>
      <XmlRefAddr addrType="SampleRestServicesURL">
          <restconnection name="SampleRestServicesURL"

Wednesday Jul 30, 2014

Oracle Enterprise Pack for Eclipse - Updated Android SDK 23 Support for Oracle MAF

We just released Oracle Enterprise Pack for Eclipse (OEPE) - a minor release which resolves deployment issues discovered between the Android SDK tools 23 and Oracle Mobile Application Framework (Oracle MAF).

Try out this new release if you have been experiencing deployment issues on the new Android SDK.

Here is some additional info that you can also find in the what's new doc. ...

[Read More]

This blog is is dedicated to announcements,tips and tricks and other items related to developing, integrating, securing, and managing mobile applications using Oracle's Mobile Platform. It is created and maintained by the Oracle Mobile product development team.

Archive of past entries

Even More Mobile Development Blogs

Oracle A-Team Site - Mobile Related Entries

Code samples from the Community

Fusion Middleware Blogs


« July 2016