Tuesday, 31 July 2007

OTN and Development Licences part 73.2 -- a FAQ!

This is yet another blog post around the issues of Oracle's Development Licenses downloaded from OTN.... this time with some light at the end of the tunnel.

Thought some readers might be interested on Doug Burn's blog, Justin Kestelyn of OTN fame has made the comment "We [sic: Oracle] are in fact working on a plain-English Developer Licensing FAQ".

This is nice to see, particularly with all the confusion based around the OTN development licenses.... and once again shows Oracle is listening.

(And well timed as if I read one more discussion about someone giving their interpretation of the licenses with the disclaimer "but I'm no lawyer" .... I'm going to scream! ;) -- or at least employee a lawyer)

I think many of us will be waiting keenly for this. I hope Justin and Oracle will take suggestions like Doug's on board before publishing the FAQ (not necessarily about licenses conditions but rather what should be in the FAQ).

Thursday, 26 July 2007

Local Aussie Oracle related events

My family has made the big leap from Melbourne across this big brown country of ours to Perth. I had an excellent drive across the Nullarbor, one of the true beautiful desolate areas I've ever been. The Nullarbor is normally dry as a bone, but I crossed it during a long period of rain, with green everywhere (okay, it's still a brown-green), and fantastic sunrises and sunsets while dodging kangaroos and road-trains on the A1 highway. Oddly I even hit a snow storm in Victoria as I drove to South Australia, as well as huge amounts of rain from Coolgardie onwards in Western Australia.

Meanwhile the Oracle world moves on and there are a number of Oracle events happening in Australia that local readers may be interested in:
  • Oracle Fusion Middleware Forum - Oracle is running a number of Fusion Middleware events during August in Auckland, Sydney, Melbourne and Perth. Thomas Kurian will be one of the presenters in Sydney and Melbourne, and Roland Slee in Perth and Auckland. I'm not usually a fan of these Oracle events as they prove to be more marketing than technically useful, but if I was in Melbourne or Sydney I'd take the effort to see Thomas. I also note past and present AUSOUG presidents Dennis Remmer and Martin Power are also presenting. For those who want a no sales-fuss approach to presentations Dennis will meet your demands.
  • In an effort to support the local Western Australian Oracle User Group (AUSOUG), they are running with "Common Stuff-Ups & How to Avoid Them" presented by Penny Cookson (Oracle Educator of the Year 2004). Perth for its small size is blessed by a number of local Oracle talents including Connor McDonald an Oracle ACE and well known presenter at the UKOUG. Both Penny and Connor are known for their down to earth presentations and are very popular at conferences (both have won numerous presentation awards). If you haven't before check out Penny this August Wednesday 1st. (Disclaimer: I work for Penny at SAGE Computing Services - but it's my blog, so I can post what I like ;).
In the "I'm not as good as them" vein, I'd like to thank the South Australian Oracle User Group for allowing me to present "All you (ever) needed to know about Java" (the ever so slightly abbreviated version) for Oracle professionals as I was passing through. It was great to see Oracle professionals looking outside the (dare I say PL/SQL ;) box with an interest in what other technologies have to provide.

Monday, 16 July 2007

My top 8 JDeveloper technical blog entries

I'm in the process of moving houses, states and family in Australia so time is just a little limited at the moment. This presents a great time to post a little re-hash of my blog and the top technical JDeveloper blog entries as ranked by my web counter, giving new readers a chance to look at some of my older material:
  1. Using multiple faces-config.xml files in JSF
  2. Back to programming: Programmatic ADF Faces Tree component
  3. Some explicit language about implicit EL objects
  4. Don't constrain yourself: displaying alternative database constraint error messages with ADF BC
  5. Bah! What is JBO-35007?
  6. Handy JDeveloper utility: the Http Analyzer
  7. JDeveloper and the art of the rollback
  8. I rest my case: Converting ADF BC EO/VO attributes to upper and lower case with custom properties
Of all the articles definitely the multi faces-config.xml files page gets the most hits each day, mostly from Google searches.

Happy reading..... and I intend to start posting again once I've driven to the other side of this big brown country of ours.

Sunday, 8 July 2007

Oracle blog aggregators

For the last few days it appears the Oracle blog aggregator www.orablogs.com has been down (or at least I can't connect?). This initiated a personal search for other aggregators, and I can't say I found that many, but thought I'd post the results and see if anybody has any feedback on aggregators they use instead.

Specifically to Oracle there are the following services:
Following my interests in all things Java, and branching across from Oracle into the JDeveloper and Java world's are the following services:
  • www.javablogs.com - much more a Java blog aggregator than an Oracle aggregator, but many of the JDev bloggers appear here.
Are there any other Oracle aggregators that you regularly use?

Saturday, 7 July 2007

Follow up: Programmatic ADF Faces Tree holding state across requests

As a further follow up to my recent posts "Back to programming: Programmatic ADF Faces Tree component" and "Follow-up: Programmatic ADF Faces Tree in JDev 11g", this posts shows how to maintain the tree's state across multiple page requests or pages. The basic problem with the previous code was if the page was refreshed, or the tree component existed in different pages, the tree's current state in terms of what has been expanded and collapsed was lost.

To solve this issue, for the tree component in every page where you wish to include and maintain the tree's state, add a binding attribute like follows:

<af:tree var="node" value="#{treeModel.model}" binding="#{treeState.tree}">

In your faces-config.xml file add a new session level bean:



And finally define the bean class as:

import oracle.adf.view.faces.component.core.data.CoreTree;
import oracle.adf.view.faces.model.PathSet;

public class TreeState {
   private CoreTree tree;
   private PathSet treePathSet;

   public TreeState() {

   public void setTree(CoreTree tree) {
     treePathSet = tree.getTreeState();
     this.tree = tree;

   public CoreTree getTree() {
     if (treePathSet != null)

You'll note how the bean across the user's session saves and restores the tree's state each time the web page requests the CoreTree component.

The credit for the seeds of the solution for this post must goto Arjuna Wijeyekoon and his OTN JDev Forum post from 2004. As can be seen the OTN Forums are very valuable for finding solutions.

Wednesday, 4 July 2007

4 things I read more recently

Yet another list of 4 things I read more recently:
  • Ruby (on Rails) vs the world - Ruby and RoR confused me for sometime as there just didn't seem to be any negative publicity. I'm a solid believer in there is no golden chalice in software development, so I viewed the RoR advocacy with a fairly skeptical eye -- I'm not arguing Ruby or RoR isn't great, but technology is at its best when the marketing remembers to include the "not so good bits". Seems Ruby and RoR has been getting a bit of hard going over more recently from Joel, and in turn a reply from the Oracle AppsLab blog. Reminds me of the Apex vs JDev argument I (accidentally) started sometime back.
  • The Cyclists - having lived in Melbourne Australia for the last few years, I'm an avid bicycle rider thanks to the hellish car-traffic mess that means travel by car or tram is slower thank bike in the inner city, and backed up in my general interest in all things to do with the environment. On a less serious note this YouTube video made me chuckle and reminded me that cyclists can be a fairly arrogant bunch -- me included (Original post thanks to Treehugger).