Thursday Jun 06, 2013

ADF Mobile Local Database and Offline support

Hey all,

Frederic from our product mgmt team has produced a nice short (32min) webcast on the Local database (SQLite) in ADF Mobile and  specifically he discusses how to use it to implement offline support in your ADF Mobile applications.

 Nice webinar...

Check it out here

Friday Apr 05, 2013

Debugging ADF Mobile apps, quick tip

Don't you miss the Weblogic console when developing Oracle ADF Mobile applications?? I do..  Well there is a neat workaround for Android.

Oracle ADF Mobile outputs quite a bit of debug information onto the Android logcat, which is quite useful.

To see the Android logcat, you can execute the following command (Windows or Linux)

adb logcat

and logcat will continue logging everthing which happens on your android phone to your operating systems command line..

However a better approach is to use Eclipse logcat.

 If you install eclipse and install the Android Development Toolkit  (link) you get the same functionality as the command line logcat, but with the additional features

I've since discovered that the Android SDK actually has a program called "Monitor" which appears to be an Eclipse based UI dedicated for debugging your device.. It has information on the heap, threads,network statistics and lots more! but importantly for us the logcat functionality is identical to whats available in eclipse (same plugin I guess)

  • Pretty colours, makes it easier to see Information vs Debug messages
  • A quick & easy UI for setting up filters , so you can configure it to filter only for messages from your application  


Tuesday Oct 30, 2012

Oracle Launches Mobile User Experiences Design Patterns

Mobile design requires a different way of thinking. Use Oracle’s mobile design patterns to design iPhone, Android, or browser-based smartphone applications.  We are sharing our mobile design patterns and their baked-in, scientifically proven usability to enable Oracle customers and partners to build mobile apps quickly.

Our design patterns are common solutions that developers can easily apply across all application suite products. Crafted by our insight into Oracle Fusion Middleware, the patterns are designed to work with the mobile technology provided by the Oracle Application Development Framework

Tuesday Sep 25, 2012

Oracle ADF Essentials - An free version of Oracle ADF

Not sure if you’ve seen this announcement, but Oracle have launched a free version of Oracle ADF, named ADF Essentials..

Its basically a  version of Oracle ADF which can also run on other app Servers and contains the full ADF Stack from ADF Faces , ADF Controller/Model and ADF Business Components.

See here for more information

also see an independent review at

Wednesday Aug 22, 2012

Beautiful websites with Oracle ADF/Webcenter

I've been following a thread on the ADF Enterprise Methodology group on google with some interest recently, which has prompted this blog posting..

Its all about "Can Oracle ADF-Faces be used to create a truly uber-sexy website", complete with sizzle ??

The answer is yes of course! Oracle ADF-Faces can produce a sexy website.

It's true that Oracle ADF-Faces was originally designed to be quick RAD framework for building Oracle Fusion Applications and it succeeds there, and over time its rapidly being used for building UIs for all of Oracle's products, from internal applications, task screens for Oracle BPM worklists, Enterprise Manager screens and is the main framework you would use with Oracle Webcenter Portal (& Spaces). The latter particularly leans towards a user audience which craves ubersexyness and sizzle vs an expenses clerk who is only really interested in getting the job done efficiently, although nice looking would be nice...

So your building an Oracle ADF website and you want it to look good where should you start?? Well Oracle ADF Skinning is the first port of call. Even with simple skinning you can create some really nice looking interfaces, just look at, an Australian Health Website and, specifically uses pure ADF, for both of these sites checkout the look and feel of the registration page to get an idea of what can be done..

Want some sizzle? 

So far although the websites could look good, they're clean, efficient and nice looking and depending on your view they might lack uber-sexyness let alone sizzle.. For that you'll probably need some custom javascript and CSS3.  Oracle ADF supports a client side javascript API which allows you to add  your own javascript and thus you can create and invoke client side javascript to hide and show canvases etc.. A good example of this being used on the web, although not built with Oracle ADF, is the O2 website, when you move your mouse over the lower panels (Phones & Tariffs,Priority Moments etc) it hide/shows a panel below. This can easily be done in Oracle ADF with some simple client side javascript which hide/shows Oracle ADF Panels, I'll create an example in a later post showing how to do this.

So far so good, but what about uber-sizzle?

Well anythings possible with a good dose of javascript, CSS and a good graphics designer, however for the most of us doing this javascript uber-sizzle is a little beyond us (well it is me! :-), this is where 3rd party libraries come to the rescue.  According to theregister , the "current" defacto standard javascript library is the JQuery library, it provides a number of components (some of which compete with ADF components),makes javascript easier to use,  but more importantly it includes a number of "animations" which can be added to a website, these animations by themselves can make a website look ooooerrrr... and thats precisely what a number of web designers do..

A number of my ADF clients have used JQuery in their websites and one of the most common usage of the animate method is to have images slide across or panels slide in-out of view. Examples of this components include this blog and Nivo.

Oracle ADF websites which use JQuery/JavaScript

All of these use JQuery in someway, most of them for animations, such as a ticker at the top in Ferrovial, Image slider in and LADWP. 

Also checkout a blog entry by a friend of mine, Duncan Mills, here, he shows whats possible with CSS3 Animations and ADF. I particularly like the ability to have the Next/Previous button hidden in a panel on the left hand side, something which is very popular in the Mac/Ubuntu Desktops at the moment...

So there you have it, you can use a Rapid Development Framework like Oracle ADF-Faces, use the native components and then add libraries like JQuery and give it some sizzle.

In a later blog posting I'll explain how one integrates JQuery with ADF to add some sizzle. 

However, before I leave you here are some important notes :

  • I/Oracle does not endorse the usage of 3rd Party libaries like JQuery, they should work but some might not play nice
  • If possible always try to use the native components in Oracle ADF first, then apply skinning/CSS and finally use a framework like JQuery if needed.
  • Remember beauty is in the eye of the beholder, get people to review the work :-)
  • Read the thread on the ADF Enterprise Development group it has some really good comments

Wednesday Aug 08, 2012

Getting rid of the JSESSIONID from the URL for ADF/Webcenter

Today's short snippet 

Yesterday I had a call from a partner of mine who is implementing a system and they asked the curious question.. 

"Can we get rid of the JSESSIONID parameter from the URL line of a Webcenter application"..

My first thoughts were why?, its part of the session management of any J2EE application but it turns out that the security conscious client wants to make session high-jacking of a Webcenter application much harder and doesnt like the jsessionid on the url line..

Make sense,

Thankfully this is quite easy, Weblogic server has a parameter in the weblogic.xml file  which allows you the ability to control how sessions are managed and one of these is to force that the JSESSIONID token is force-ably implemented via cookies and not URL parameters. This obviously has the disadvantage that if the browser doesnt have cookies enabled then your application wont work...

Cookies however can also be intercepted/viewed too, so I also recommended that they rename the session cookie so that automated tools looking for JSESSIONID wont find it..

The weblogic.xml now looks like


You can also set this from JDeveloper by editing your projects weblogic.xml file and using the "overview" mode of the wizard.


Obviously the best next thing is to ensure all communication is also SSL encrypted.

Monday Aug 06, 2012

Monitoring memory in JDeveloper11g

Just found this blog posting by Andrejus on turning on an internal feature to monitor memory consumption used by JDeveloper 11g.. Why is this interesting? Well, the default appears to be 800Mb for heap, depending on your usage you might want to increase this and these settings allow you to "see" if the changes are making a difference..

Obviously I want to stress that these flags are undocumented and I would also keep a copy of the configuration files before editing them.. just in case..

Friday Jun 22, 2012

UI Design Patterns : Are you developing a Fusion Apps extension, an ADF or Webcenter App?

A big question I get asked when speaking to partners who are developing Oracle ADF, or Webcenter, Apps is how to make it look nice.. Some of the big System Integrators ask me, "Do we have any design patterns/guidelines we can use?". .. Alas website design is a very personal thing and each website will have different requirements and needs, however I am now pleased to say we've just launched "Oracle Fusion Applications Design Patterns" website. 

 The website is the result of many years of Oracle R&D into user interface design for Fusion applications and features a really cool web app which allows you to visualise the UI components in action.

Although many of the design patterns are related to ADF , its worth noting that ADF took its lead from Oracle Fusion Applications User Interface needs - not the other way around, its just taken us a while to publish these. Coupled together with the dashboard patterns this makes are really cool extra asset for your kit bag


Wednesday Jun 20, 2012

Fusion Map

Found this on the web, cool roadmap, or should I say tubemap, to your path to understanding Fusion Apps cute..



Tuesday May 15, 2012

Active Active Webcenter Portal Install


As some of you know previously active-active installations of Oracle Webcenter portal isnt supported out of the box till now!. There are many reasons, some of which are database related and some of them are simply due to the amount of moving parts there are.. However fear not a fantastic white paper has just been released explaining all the steps and how to get it all working in a supported fashion

Read the document and enjoy your new Highly Available Infrastrucutre

See here 

Friday Feb 24, 2012

Oracle Fusion Middleware PS5 is here!

As you may have seen from various tweets from many people, including myself, Oracle Fusion Middleware ps5 ( is finally out and available on edelivery and soon otn.

So the big question is .. ok whats changed???

Well for SOA Suite its  

See Jurgen Kress's SOA Community blog

Tuesday Jan 03, 2012

Happy New Year All , and are you all integrated and validated?

Firstly Happy New Year to you all

Secondly, in late December a friend of mine, who works for an Oracle Partner, asked me questions on how to "correctly" integrate  Oracle eBusiness Suite with a 3rd party application, the answer is "it depends".. There are many ways to do integration and depending on what you need to accomplish depends which one is the "best" approach..

It depends on :

- What version of EBS you are using, if its 12.1.3 then you can use the ISG (integrated Service Gateway)  to call services within EBS as Web services.
-  If your on a EBS prior to 12.1.3 (also 11i I guess) then you have something called the Applications SOA Adapter within SOA Suite. This adapter basically acts as a facade between SOA Suite and the Oracle eBusiness Suite PLSQL APIs, quite easy to use and works well.. This adapter is also available in 12.1.3, but its generally recommended to use the previously mentioned ISG Gateway instead.

However beware that the devil is in the detail, it does depend who the 3rd party is and what they are trying to do, you might for example need to use the Oracle Service bus for some complex credential mapping, or maybe the Oracle B2B product is a better fit.. Also consider if its a batch process then perhaps one of the data integration products is a better fit (e.g. ODI)
Finally, what about validating the solution? Does oracle provide validation services? 

Yes we do!


If its custom code, or a one off for a client, then the best people do validate the solution is probably Oracle Consulting Services, if you are a partner who are creating a reusable asset then the partner program has a validation program called "Oracle Validated Integration" which provides a number of benefits  

Tuesday Nov 29, 2011

Improving the performance of JDeveloper11g (part 2) and JVMs in general

Just received an email from one of our JVM developers who read my blog entry on Performance tuning JDeveloper11g and he's confirmed that all of the above parameters are totally supported :-) He's also provided a description of the parameters so we can learn what magic is actually being applied.

- -XX:+AggressiveOpts -- this enables the latest and greatest JVM optimizations. It will likely help most Java applications. It's fully supported. The downside of it is that because it has the latest and greatest optimizations, there is some small probability that it may not offer as good of an experience. As those features enabled with this command line option have "matured", they are made the default in a future JDK release. So, you can think of this command line option as the place where the newest optimizations get introduced. Some time later they are moved out from under AggressiveOpts to become default behavior.


-- only works with the -server JVM. It may be enabled by the default in a future JDK 7 update release. This option delays the construction of a StringBuilder/StringBuffer and attempts to avoid re-sizing the underlying char[] by attempting to detect the size of the char[] to allocate based on what's being appended to the StringBuilder/StringBuffer.


-- I would not suggest using this unless you knew that JDeveloper allocated the same string over and over again. And, the string that's allocated over and over again is one of the first 100,000 allocated strings. In short, I'd recommend against using it. And, in fact, in Java 7 (currently) does not include this feature.


-- applicable to 64-bit JVMs. And, if you're using a 64-bit JVM, I'd suggest you use it. It's auto enabled in JDK 7 64-bit JVMs and later JDK 6 64-bit JVMs enable it by default too.


-- by default this option is already enabled.

One other command line option to consider is -XX:+TieredCompilation for a JDK 6 Update 25 or later, or JDK 7. This gives you the startup of a -client JVM and the peak performance of a -server JVM.


Finally, Charlies also pointed out to me a "new" book he's just published where he goes into the details of JVM tuning, a must for all Fusion Middleware tuning exercises.. 

(click the book) 

Thanks Charlie!

ADF and JSF2.0

Recently been hunting down some information for an italian partner on ADF & JSF2.0, well whadayaknow..

My good buddies Frank Nimphus and Duncan Mills have written such a document, check it out here

Monday Oct 03, 2011

Improving the performance of JDeveloper 11g

Hi All,

I recently was in Madrid with a collegue from our US Development HQ and he shared with me a number of JDeveloper JVM 6 parameter changes which really make a difference to how JDeveloper works. In a nutshell they are hints to the JVMs memory & garbage collector which makes JDeveloper run a little smoother...

Firstly locate your jdev.conf file, usually in $JDEV_HOME/jdeveloper/jdev/bin  directory

Append the following lines to the end of this file

AddVMOption -XX:+AggressiveOpts
AddVMOption -XX:+UseStringCache
AddVMOption -XX:+OptimizeStringConcat

# only since Java 6 update 21 performance release
# reduces memory consumption
#AddVMOption -XX:+UseCompressedStrings
AddVMOption -XX:+ScavengeBeforeFullGC

# only for multi-core machines
AddVMOption -XX:+UseConcMarkSweepGC
AddVMOption -XX:+UseGCOverheadLimit

# works only on 64-bit JVM
# dramatically reduces memory consumption
# by reducing memory addressing length overhead
#AddVMOption -XX:+UseCompressedOops

 Then restart jdeveloper!

Thanks Eduardo!


Architect & Technology Evangelist - If its middleware,PaaS/SaaS integration then I'm interested

The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.


« March 2015