Thursday Apr 17, 2014

Netherlands ADF Event with AMIS: Enterprise to Mobility

For Oracle customers interested in ADF, mobility and all things enterprise, Frank Nimphius, Steven Davelaar and myself have the pleasure of attending and presenting at an AMIS hosted ADF conference Wednesday May 21st through Friday May 23rd in Nieuwegein Netherlands.  

Rarely is there a conference focused purely on ADF and ADF Mobile, especially 3 days worth, so as you can appreciate this represents a unique opportunity to talk and learn from your ADF peers.  What makes this conference particularly interesting from my perspective is that it's not just Oracle staff giving the Oracle view of the world, but AMIS staff, Oracle ACE/ACE Directors and real customers will also be presenting.  I'm betting there is going to be a few "friendly debates" during the 3 days.

(though Oracle staff reserve the right to be always right regardless, it's in the safe harbour slide don't you know ;-)

We hope you'll take the opportunity to join us in May. You can check out a full description of the agenda via this AMIS blog post, as well as this site for registration.

Thursday Jan 16, 2014

Learn about Oracle's Mobile Platform at Perth's upcoming Developer Day - Feb 18th

For Oracle customers located in Perth Australia, OTN will be holding an Oracle Developer Day on February 18th to cover contemporary Oracle development topics.  Oracle Developer Days don't come to Perth too often, something to do with being at the end of the earth I suspect, so we hope customers will take the opportunity to attend while the opportunity presents itself.

From a middleware perspective I'll be covering in two sessions Oracle's Mobile Platform, specifically looking at Oracle's ADF Mobile and Oracle Mobile Suite.  This is your chance as a customer to get a handle on Oracle's mobile strategy from a development perspective, as well as a good look at what benefits Oracle ADF Mobile and Oracle Mobile Suite can deliver for both developers and your business.

The day is not just about middleware though, and Oracle has been lucky enough to have well known and respected community speakers Connor McDonald and Penny Cookson join the line of speakers.  Between Penny and Connor they will also cover what's new in the Oracle database for developers, how to internet enable your database for mobile, and mobilizing your Oracle APEX applications.  Overall you can see the theme for the day is "mobile", which really shouldn't be that surprising from a developer point of view as the development world hums the "mobile first" mantra.

We hope you'll take the opportunity to attend the event, listen to both community leaders and Oracle staff give their vision of the mobile development landscape, and network with the local Oracle community.  More information about the event and how to register can be found here.

Monday Jan 06, 2014

ADF Architecture TV in 2014 - bonus episodes on designing for accessibility

The ADF Architecture TV channel on YouTube kicks off for 2014 with two bonus episodes this week on designing your ADF applications to be accessible.  You can view the first bonus episode here.

(And the second bonus episode is now also available).

In 2013 the channel aired just on 24 weekly episodes.  To date the channel has just under 2000 subscribers and 18000 views.  As far as we're concerned, that's not too shabby for a TV series launched mid 2013, recorded with nothing but a couple of webcams, some homemade lighting, and a considerable amount of coffee.

With an eye to continuing our support of customers, and giving all those YouTube cat videos a run for their money in 2014, the ADF product management team has approximately another 50 episodes of ADF topics to go.  You can catch the entire episode index, both current and future episodes on the ADF Architecture Square.

We hope you find the content useful and we wish you the best for 2014. 

Image courtesy of Danilo Rizzuti /

Friday Dec 06, 2013

ADF Mobile: URL Schemes

The most recent version of ADF Mobile adds support for URL Schemes, a capability that allows disparate iOS and Android apps to call each other and pass values.  If you've ever used a mobile app that invokes email, maps, Evernote or LinkedIn, often they're using URL Schemes to do this.

In order to get you on the path to calling other apps using URL Schemes, or even building your own ADF Mobile app so it can be invoked by a custom URL Scheme, the Product Management team has recorded the folowing ADF Insider Essentials video to get your started.

You might note during this recording I stick very carefully to the EmployeesFeature. If you want to invoke multiple different features in your application via the URL Scheme, typically before calling AdfmfContainerUtilities.invokeContainerJavaScriptFunction() in the LifeCycleListenerImpl.start() EventListener.onMessage() method, you would also call AdfmfContainerUtilities.gotoFeature() naming the feature you want to navigate to. However in this version of ADF Mobile the error "Could not show the feature. Attempt to show 'FeatureId' failed. ERROR:- UITabBarController set SelectedViewController: only a view controller in the tab bar controller's list of view controllers can be selected" will be raised. This is due to bug 17450616 and is resolved in an upcoming release of ADF Mobile.

Thursday Nov 28, 2013

ADF Debugging Aid: The ADF Request Analyzer

Seasoned Oracle ADF developers will be familiar with the ADF Logging framework, an instrumentation API that you can use to surface what your application is doing behind the scenes, mainly as a debugging aid.  The ADF framework itself uses the ADF Logging framework to produce copious logs showing what the framework actually does for you.

Admittedly reading the logs, either your's or Oracle's can be a rather tedious process.  Let's admit it, reading text files with 1000 of lines of output isn't what we signed up for when we joined the exciting world of the IT industry.  Arguably reading the logs can also be like drinking from a fire hose too, there's just too much information to digest.

To make your life a little easier as a developer, Oracle's JDeveloper includes the Oracle Diagnostic Log Analyzer which is a visual tool included in the IDE designed to allow you to search, filter and read the logs in a structured fashion.

A superb addition to the Oracle Diagnostic Log Analyzer is the ADF Request Analyzer.  The ADF Request Analyzer is not just designed to assist you read the logs, but restructures the logs to represent the JSF & ADF lifecycle on each request.  In other words it moves from a flat line by line log structure which doesn't really represent the flow or logic of how each request is processed, to showing you visually in a tree structure the different phases of the lifecycle processing the request.

Interjecting with one of the main benefits I see from a personal perspective, the ADF Request Analyzer takes that dry JSF lifecycle you read about in books but never really understood as it was all theoretical, and now shows you the runtime representation of the lifecycle so you really get to see what gets processed when.

For customers who don't know about this tool, the ADF product management team has released a new ADF Insider video on the ADF Insider Essentials YouTube channel entitled the Oracle Diagnostic Log Analyzer - ADF Requests and the JSF Lifecycle.  To make it a little more realistic than "here's the tool and you should use it", the video attempts to show you some real running scenarios, as well as how you would use it in a production environment.

We hope you find this useful.  As can be seen Oracle's ADF Product Management team continue to commit to providing customers comprehensive learning collateral on your ADF endeavours, with the ADF Insider Essentials channel, ADF Architecture TV, ADF Mobile Academy and much more.

Image courtesy of artur84 /

Monday Nov 11, 2013

Tip: Keeping the ADF Mobile PDF Guide up to date

This is a little tip for customers using Oracle's ADF Mobile.

If you're like me, it's possible you don't rely on the online HTML version of the Mobile Developer's Guide for ADF, but rather download a PDF version of the file to use locally (look to the "PDF" link to the top right of the guide).  For me the convenience of the PDF is it's faster, I can search the whole document easily, I can split read the document across two pages on my home monitor, if I lose my internet connection the document is still available, and it's easy to read on my iPad (especially on long haul flights to the US across the Pacific where there is no internet connection!).

The trigger point for me to download the Oracle PDF documentation has always been on a new point release of JDeveloper.  However in the case of ADF Mobile, as an extension to JDeveloper it is releasing at a much faster and independent schedule to JDeveloper and this includes updates to the documentation.

As such the ADF Mobile PDF guide you have locally might be out of date and you should take the opportunity to download the latest version.  This is also particularly important for ADF Mobile as not only are many new features being added for each release and included in the new documentation, but the guide is under rapid improvement to clarify much of what has been written to date.  Our documentation teams are super responsive to suggestions on how to improve the guides and this often shows per point release.

How do you tell you've the latest guide? Look to the document part number which right now is "E24475-03".  This is a unique ID per release for the document, the first part being the document number, and the part after the dash the revision number.  If the website document number has a higher revision number, time to download a new up to date PDF.

One last thing to share, you can follow the ADF Mobile guide document manager Brian Duffield on Twitter to keep abreast of updates.

Image courtesy of Stuart Miles /

Wednesday Nov 06, 2013

Diagnosing ADF Mobile iOS deployment problems

From time to time I encounter customers who have taken possession of a brand new Apple Mac, have that excited "I've just spent more on a computer then I ever wanted to but it's okay" crazy gleam in their eye, but on pre-loading all the necessary software for Oracle's ADF Mobile to start their mobile campaign, following Oracle's setup instructions and deploying their first app to Apple's XCode iPhone Simulator they hit this error message in the JDeveloper Log-Deployment window:

[01:36:46 PM] Deployment cancelled.
[01:36:46 PM] ----  Deployment incomplete  ----.
[01:36:46 PM] Failed to build the iOS application bundle.
[01:36:46 PM] Deployment failed due to one or more errors returned by '/Applications/'.  The following is a summary of the returned error(s):
Command-line execution failed (Return code: 69)

"Oh, return code 69, I know that well" I hear you say.  Admittedly the error code is less than useful besides drawing some titters from the peanut gallery.

Before explaining what's gone wrong, I think it's useful to teach customers how to diagnose these issues themselves. 

When ADF Mobile commences a deployment, be it to Apple's iOS or Google's Android platforms, JDeveloper and ADF Mobile do a good job in the Log window of showing you what the deployment process entails.  In the case of deploying to iOS the log window will literally include the XCode commands executed to complete the deployment cycle. As example here's the log output that was produced before the error message was raised.... take the opportunity to read this line by line and note the command line calls highlighted in blue:

(Note some of the following lines have been split over multiple lines to suit reading on this blog, each original line is preceded by a timestamp. Ensure to check the exact commands from JDev)

[01:36:33 PM] Target platform is (iOS).
[01:36:33 PM] Beginning deployment of ADF Mobile application 'LayoutDemo' to iOS using profile 'IOS_MOBILE_NATIVE_archive1'.
[01:36:34 PM] Command-line executed: [/Applications/, -version]
[01:36:34 PM] Command-line execution succeeded.
[01:36:34 PM] Running dependency analysis...
[01:36:34 PM] Building...
[01:36:34 PM] Deploying 3 profiles...
[01:36:35 PM] Wrote Archive Module to /Users/chris/fmw/jdeveloper/jdev/extensions/
[01:36:35 PM] WARNING: No Resource Catalog enabled ADF components found to package
[01:36:36 PM] Wrote Archive Module to /Users/chris/fmw/jdeveloper/jdev/extensions/
[01:36:36 PM] Verifying existence of the .adf source directory of the ADF Mobile application...
[01:36:36 PM] Verifying Application Controller project exists...
[01:36:36 PM] Verifying application dependencies...
[01:36:36 PM] The application may not function correctly because the following dependent libraries are missing: /Users/chris/jdev/jdeveloper/jdeveloper/jdev/extensions/
[01:36:36 PM] Verifying project dependencies...
[01:36:36 PM] Validating application XML files...
[01:36:36 PM] Validating XML files in project ApplicationController...
[01:36:36 PM] Validating XML files in project ViewController...
[01:36:40 PM] Copying common javascript files...
[01:36:41 PM] Copying FARs to the ADF Mobile Framework application...
[01:36:41 PM] Extracting Feature Archive file, "ApplicationController.jar" to
deployment folder, "ApplicationController".
[01:36:42 PM] Extracting Feature Archive file, "ViewController.jar" to
deployment folder, "ViewController".
[01:36:42 PM] Deploying skinning files...
[01:36:43 PM] Copying the CVM SDK files built for the x86 processor...
[01:36:43 PM] Copying the CVM JDK files built for the x86 processor...
[01:36:43 PM] Command-line executed: [cp, -R, -p,
[01:36:43 PM] Command-line execution succeeded.
[01:36:43 PM] Command-line executed: [cp, -R, -p,
[01:36:43 PM] Command-line execution succeeded.
[01:36:43 PM] Copying security related files to the ADF Mobile Framework application...
[01:36:44 PM] Command-line executed from path:
[01:36:44 PM] Command-line executed:
/Applications/ clean install
-configuration Debug -sdk

As you can see when we move from JDeveloper undertaking its work, it then passes the code off in the last few lines for Apple's XCode to assemble and deploy the required .ipa file.  From the original error message which followed this complaining about xcodebuild failing with return code 69, we can quickly see the exact command line used to call xcodebuild.

As this is the exact command line call with all its options, you're free to open a Terminal window in Mac OSX and execute the same command by simply copying and pasting the command line. And via this you'll then find out what return code actually 69 means.  Unfortunately it's not that exciting.

For Macs that have just been installed and configured with XCode, XCode (and for that matter iTunes) which is required by ADF Mobile to deploy must have been run at least once before hand on your brand new Mac (to be clear that's once ever, not once every restart). On doing so you will be presented with a license agreement from Apple that you must accept. Only once you've done this will the command line calls work.  They're currently failing as you haven't accepted the legal terms and conditions. (arguably you an also accept the terms and conditions from the command line too, but ADF Mobile cannot do this on your behalf, so it's just easier to open the tools and confirm the legal requirements that way).

Putting aside the error code and its meaning, watching the log window, watching what commands are executed, learning what they do, this will assist you to diagnose issues yourself and solve these sort of issues more relatively quickly.  From my perspective as an Oracle Product Manager, it allows me to say "this is the stuff you don't need to worry about when you use ADF Mobile when it's configured correctly" .... as you can see my salesman qualities shine through.

For anyone who is happily using ADF Mobile on a Mac and wondering why you didn't hit these issues, it's quite likely that you already accepted the license conditions before deploying via ADF Mobile.  For instance, though I'm not a fan of iTunes itself, iTunes was one of the first things I loaded on my Mac to access my Justin Bieber albums.

Image courtesy of winnond /

Saturday Jul 27, 2013

The ADF EMG day at Oracle Open World 2013 Sunday 22nd

I'm happy to say through the kind efforts of the ADF community volunteers, under the expert banner of ODTUG, the ADF EMG will be running another day of ADF sessions at Oracle Open World's user group Sunday 22nd September.  This adds another six ADF sessions and a whole day of solid ADF content for you to enjoy at the world's largest Oracle conference for developers.

The general announcement of sessions is covered on the ADF EMG forums, but a summary of the expert speakers and topics is here:

  • 8:00am - Oracle ADF Task Flows Beyond the 10-Minute Demo [UGF7001] - John King
  • 9:15am - Oracle on Your Browser or Phone: Design Patterns for Web and Mobile Oracle ADF Applications [UGF9898] - Floyd Teter & Lonneke Dikmans
  • 10:30am - ADF Performance Tuning War Stories [UGF2737] - Stephen Johnson, Frank Houweling, Eugene Fedorenko
  • 11:45am - Top 10 Web App Vulnerabilities, and Securing Them with ADF [UGF9900] - Brian Huff
  • 2:15pm - Worst Practices When Developing an ADF Application [UGF9860] - Paco van der Linden & Wilfred van der Deijl
  • 3:30pm - WebCenter & ADF - Responsive and Adaptive Design for Desktop, Mobile & Tablet [UGF9908] - John Sims
You can also view the sessions in the OOW content catalog, and check out all of the Oracle ADF content at Oracle OpenWorld 2013 too.

We hope you'll take the opportunity to join the ever growing ADF community at our largest ADF event, come learn, share, and participate in something that started as a single session at OOW in 2008 with just 20 people, to in 2013 a whole day of ADF content for all attendees to enjoy.

Thursday Jul 25, 2013

ADF rocks the Australian AUSOUG conference series

For Oracle customers looking to learn more about ADF and participate with the larger ADF community in Australia, this year’s AUSOUG Insync conference series across multiple cities has more ADF content than ever before.  As an ADF product manager based in Australia, I’ve seen the AUSOUG conference go from just 1 or 2 ADF presentation in previous years to this huge amount in 2013, the Aussie ADF market is certainly expanding. 

Following is a list of ADF presentations per city, and I’ve taken the liberty of including some other FMW topics including web services, FMW infrastructure, Fusion Apps and Forms which relates to ADF.

We hope you’ll take time out to register for the conference, come learn more about ADF, and be part of the expanding ADF community in Australia.

Sydney 15-16th August

• Speed dating - Oracle JDeveloper 12c and Oracle ADF New Features – Chris Muir - Oracle Corporation
• The Future of Oracle Forms: Upgrade, Modernize, or Migrate? - Chris Muir - Oracle Corporation

Melbourne 19-20th August

• Building an award winning product with Oracle Application Development Framework - Primoz Luzar – Callista
• Case Study: Redesigning core on-line systems in ADF JDeveloper - Penny Cookson - Sage Computing Services
• Redeveloping a legacy application in JDeveloper ADF  - half day workshop - Penny Cookson - Sage Computing Services
• Speed dating - Oracle JDeveloper 12c and Oracle ADF New Features – Chris Muir - Oracle Corporation
• The Future of Oracle Forms: Upgrade, Modernize, or Migrate? - Chris Muir - Oracle Corporation

• Best Practices for accelerating the roll out of Oracle Fusion infrastructure - Half day workshop - Matthew Wright, Craig Barr - Rubicon Red
• Extending Fusion Applications : What, Who, When and HOW - Debra Lilley - Fujitsu UK
• The Universal Web Service - Data Driven SQL/XML Web Service - Evan Vicary, Primoz Luzar - Callista

Brisbane 2-3rd September

• Case Study: Redesigning core on-line systems in ADF JDeveloper - Penny Cookson - Sage Computing Services
• Redeveloping a legacy application in JDeveloper ADF  - half day workshop - Penny Cookson - Sage Computing Services

Adelaide 5-6th September

• Case Study: Redesigning core on-line systems in ADF JDeveloper - Penny Cookson - Sage Computing Services
• Redeveloping a legacy application in JDeveloper ADF  - half day workshop - Penny Cookson - Sage Computing Services

Perth 12-13th November

• Case Study: Redesigning core on-line systems in ADF JDeveloper - Penny Cookson - Sage Computing Services
• CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experience with Oracle ADF and UX Design Patterns - Chris Muir - Oracle Corporation
• Elementary my Dear Weblogic - the Case of Spying on ADF - Ray Tindall - Sage Computing Services
• Empowering your business with mobile applications - Eddie Phan - RACWA
• Oracle ADF for Newbies: Surviving your first project - Kylie Payne - Sage Computing Services
• Redeveloping a legacy application in JDeveloper ADF  - half day workshop - Penny Cookson - Sage Computing Services
• The Future of Oracle Forms: Upgrade, Modernize, or Migrate? - Chris Muir - Oracle Corporation

For anyone based in Perth, you've also the opportunity to participate in the AUSOUG ADF special interest group, which runs sessions bimonthly.

We hope to see you at one of these events soon. 

Wednesday Jul 17, 2013

This is ADF Architecture TV

In 2011/12 Oracle conducted a survey amongst key ADF customers asking what they'd like to see next from Oracle's ADF Product Management team beyond the ADF basics which we’ve already covered in-depth? Concepts such as ADF design, architecture, best practices and patterns were high in the results.  We responded in late 2012/early 2013 by delivering a one week internal training course to staff and key Oracle partners around the world.  Yet we wanted to do more for everyone, and with support from Oracle's Development Tools management we’d like to announce the ADF Architecture TV YouTube channel. 

This free TV channel will publish, week by week, episode by episode, a huge array of short, distinct topics as relating to all parts of the ADF development lifecycle, from planning, to design, to development, deployment and delivery.  All in all we have current plans for near 100 episodes.  The channel also takes a distinct departure from our traditional online video content in that key Oracle staff now stand in front of the YouTube camera, no longer are we a background narrator of the slides.  (Though our budget is limited, no makeup artists for us, you get to enjoy us on even on our bad hair days!)

The complete set of topics to be covered is currently indexed on the ADF Architecture Square for you to check out.  We’ve already published two episodes on the YouTube channel so you can get a taste of what's to come, which you can enjoy from either work with a small time investment each week, or even from your iPad/Android tablet at home (well maybe that's just me, I really need to get a life outside Oracle).

We hope you personally will find the channel a new and engaging model for consuming our ADF collateral, and in turn this will help you and your organization to success on your next ADF project.  Take time out to subscribe to the channel so you receive instant notification of new episodes being published.

Tuesday May 21, 2013

ADF Mobile - Deploying to Android fails with "Cannot find program ... aapt"

There's an old saying, if things don't change, they often stay the same.

It appears as of last week (post Google's I/O conference) that there has been a change to the Android SDK.  If you download the complete Android SDK as of 14th May 2013 and later, Google has changed the structure of the SDK such that some critical files that JDeveloper and ADF Mobile rely on deployment have moved.  The error during deployment you'll see is something similar to:

[08:36:21 AM] Shutting down Android Debug Bridge server... 
[08:36:21 AM] Deployment cancelled. 
[08:36:21 AM] ----  Deployment incomplete  ----. 
[08:36:21 AM] Cannot run program 
"/Users/joedoe/Oracle/adt-bundle-mac-x86_64-20130514/sdk/platform-tools/aapt": error=2, No such file or directory 
[08:36:21 AM] error=2, No such file or directory

In the SDK it appears the following files/directories have moved:





...and it is this which causes the JDev ADF Mobile Android deployment process to choke.

For your reference Oracle is working on this and is tracking it via bug 16837655.  However there appears to be a simple workaround. Simply copy those files and the lib subdirectory to the platform-tools directory.  If the workaround does not work for you please log the issue on the OTN Forums and/or Support so we can investigate why.

Please note if you've downloaded the SDK prior to this, you wont hit this issue.  It only applies to anyone downloading the complete SDK since 14th May+.

Image courtesy of David Castillo Dominici /

Thursday May 16, 2013

Migrating ADF Mobile apps from 1.0 to 1.1

I thought I'd share something valuable from ADF Mobile’s product manager Joe Huang. Within context of migrating ADF Mobile v1.0 applications to v1.1, there’s some important migration notes in the release notes that developers should read.

Of particular interest for myself is the change to how Javascript libraries need to be imported for the series of device integration videos I recently recorded. In ADF Mobile v1.0 you would have used the following JavaScript references:

<script type="text/javascript" src="../../../../www/js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../../../../www/js/adf.el.js"></script>
<script type="text/javascript" charset="utf-8" src="../../../../www/js/phonegap-1.0.0.js"></script>
<script type="text/javascript" src="../../../../www/js/"></script>

In ADF Mobile v1.1 you replace these with just the two following lines:

<script type="text/javascript">if (!window.adf) window.adf = {}; adf.wwwPath = "../../../../www/";</script>
<script type="text/javascript" src="../../../../www/js/base.js"> </script>

That's it - otherwise there are no other changes needed.

Please note, that if you need to invoke device services from a localHTML feature, you would still need to include cordova-2.2.0.js as well. In the previous version, due to some internal issues, PhoneGap1.0.0 always needed to be included even if you are only calling ADF Mobile related functions. In, only base.js needs to be included for ADF Mobile related functions, and cordova-2.2.0.js is needed only for device services integration like camera. And yes PhoneGap1.0.0 has been replaced with Cordova 2.2 in ADF Mobile

Thanks very much to Joe for sharing this information.

Image courtesy of Vlado /

Monday Apr 08, 2013

JDeveloper Where did Git go?

In the previous release of JDeveloper in a special build known as CLOUD, Oracle included Git support built into the IDE.  Recently on our JDeveloper release it appeared we had removed it.  Where did the Git go?

I'm happy to say Git support is still available, but not as a direct part of the IDE as per the previous version.  Rather in it is supported through an extension available via the Help -> Check for Updates menu option, then the Official Oracle Extensions and Updates repository.  You can also download the extension from the following extensions page and install it manually.

Friday Apr 05, 2013

Not 'how' but 'why' should you upgrade to JDeveloper & ADF

I recently received questions from Oracle ACE Director (ACED) Tim Hall on upgrading to JDeveloper, not necessarily asking about the 'how' but rather the 'why should we upgrade to the latest version beyond new features?' Oracle has a close relationship with its ACED members, and overall the questions that we receive from the ACE Directors are well thought out and indicative of what the wider customer base are interested in, so we’re more often than not willing to address their concerns.  As such Tim and I thought we’d collaborate to write and publish the questions and answers for everyone to benefit from.

Tim Q1) Assuming we don't need the extra functionality in ADF, what is the advantage of moving to it? Are the bug fixes and maybe browser compatibility changes enough to warrant the upgrade?

Chris A1) Of course Oracle would love you to look at the new features and we hope they are compelling enough reasons on their own to get you to upgrade.  Probably the most exciting parts are the 'eye candy'components (cough, DVT controls) such as the Sunburst, TreeMap, TimeLine and Code Editor.  However for programmers the PanelGrid, ListView and new (returned?) pagination support in Table’s will also make ADF UI development easier, and who doesn’t want an easier job?

Possibly a more compelling reason is the optimisations introduced under the covers which might not be overly obvious, but will make your users happy with the responsiveness of the app migrated to  In this release Oracle has introduced a new skin 'Skyros' which to some people will be 'just another skin'.  Yet this skin introduces CSS3 with its graphics rendering support to replace the 10s, if not 100s of images we used to include with each skin for the overall application chrome.  This means your user’s browsers now download far less bytes, the browser and CSS3 can use the graphics processes of the users’ PCs for faster interactions, the end outcome, faster apps, happier users.

Not enough on the optimization front?  To prove my point about optimizations under the covers, check out the bug fix list and note the DOM optimizations (e.g. bug 14015969) to make components more 'HTML-light-weight'.  The ADF programmer won’t see this in their day to day coding, but it will make a performance difference to the applications as the browser has less HTML to review and DOM to process.

Yet I agree, this and the other new features might not be enough.  So let’s address your other points.

Between releases Oracle does put it in significant effort addressing JDeveloper and ADF bugs, as well as behind the scenes optimizations that you get for free and we don’t necessarily publicize. Admittedly we also introduce in a few new bugs, but lets be realistic, that’s the nature of modern complex software, there’s always going to be bugs.  The goal is of course to reduce the amount and this is something Oracle pursues at length. Since starting at Oracle 1 year ago I’ve lodged just over 100 bugs and ERs, and have worked at length with our developers who are committed to addressing these issues, something all our team members do daily.  With all this in mind, from experience in having talked to external development teams who have upgraded in the past, generally speaking when quizzed about the quality of the IDE and ADF, I’ve not yet heard a customer say they wanted to go back versions.  So overall my opinion, is yes, you should diligently plan to upgrade when new releases come out.

In turn you mentioned browser compatibility.  One goal of ADF Faces is to remove the mess of programming and testing for different browsers and versions.  This problem for everyday HTML, CSS and JS programmers has got worse in my opinion with the acceleration of browser releases and even mobile browsers thrown into the mix (have you read Webkit might be the next IE6?).  So one thing we’re doing behind the scenes on every customer’s behalf is testing and fixing issues of all our components on each browser release as they become available.  As an exception that hopefully proves the rule, have a look at the release notes and read all the different browser issues Oracle has detected and have bugs listed for, Oracle continues to make these sort of issues a priority.  Why? We’ve a vested interest in fixing these too, our applications are all written in ADF, all rendered in browsers, we need this to work for our products too otherwise our customers wont use them.

Arguably some readers might say that they don’t have to upgrade to pursue the latest browser fixes as their application only runs internally to their organization where the browsers are pegged to a certain vendor and version.  I think this used to be relevant argument, but is becoming less so now with the BYOD mobile movement, where staff are accessing internal systems via their own tablets and smartphones.  It’s only a matter of time till your CEO sends a nasty email that she can’t access the systems from her latest Android or iOS device.  Oracle includes optimizations & fixes for these devices, indeed introduces better support for Android Chrome to address the mobile browser market issues too.

At this point in re-reading my answer, I feel like I’ve been drinking the Oracle cool-aid a little too much.  So let’s address reasons why you shouldn’t upgrade at this stage.

Depending on the scale of your ADF infrastructure (code, servers, developer PCs, CI engines), the act of upgrading can be substantial across the organization.  Undertaking an upgrade while your part of the organization is under deadlines might not be the wisest thing to do.  If you’re just about to go to production with your latest ADF application, and the dev teams are under pressure to get it out the door, throwing in a new JDev/ADF release at the last moment could be disastrous to your milestones, & even the quality of your software if the QA team doesn’t have time to do a full regression test.

As most readers will be aware, regression testing is an important process of ensuring between upgrades a system doesn’t introduce any new bugs, something you definitely should pursue when upgrading your ADF infrastructure or anything else for that matter.  Yet at many sites they’ll attempt to do this testing manually, which with any large system will be difficult, time consuming, and prone to missing issues.  As such in chasing the ADF release cycle, with any system of size, it’s well worth pursuing automated regression testing through tools like Oracle Application Test Suite or similar.

Finally, recognize that Oracle is going to continue to release new versions of ADF, with new features, fixes and optimizations.  As such it seems prudent to me that any organization serious about software development shouldn’t be planning these upgrades on an adhoc basis, but it should be something built into their plans.  The browser world is going to continue to churn, Oracle is going to continue to innovate and fix issues, why are customer’s inadvertently drawing a line in the sand after each upgrade to not consider planning for the next?

Tim Q2) Is there a significance in upgrading as far as support lifecycle is concerned?

Chris A2) Good question, and yes, something I’ve written about before, Do you know your ADF "grace period?".  In brief while Oracle agrees to support ADF for considerable time, your grace period for bugs and fixes to the release is now ticking.

Disclaimer: I’m paraphrasing the Oracle support policies here and it is important Oracle customers keep up to date with these policies themselves.  Please read the previous blog and research the associated support notes.

Tim Q3) Is the upgrade likely to break anything that has already been converted for

Chris A3) Well, we'd hope not ;-) Oracle doesn't deliberately release software that is designed to break our customers' software, but as we admitted together earlier on in this discussion, modern software is a complex business and Oracle will have bugs in its software, to say otherwise will be a lie.  But that’s why I put the emphasis on regression testing and automated regression testing early on, not just for Oracle! … but also you.  The grace period gives you a year to upgrade your systems in your test environments, and lodge bugs and get fixes from us, before you upgrade.  

As a final note some customers will be asking why Oracle has two current JDeveloper versions, and  This older blog post, though talking about and is still relevant and worth a read for anybody confused about the two releases.

Image courtesy of pat138241 /

Reminder: ADF Mobile workshops in Australia April/May

Just a small reminder that Oracle in conjunction with the Australian Oracle User Group (AUSOUG) will be running whole day hands-on ADF Mobile workshops in Australia over April/May.

The schedule is follows for the following Aussie cities.  Follow the links to register separately for each city:


Chris Muir - Oracle ADF Product Manager - The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.


« April 2014