Saturday, 31 March 2007

May you live in interesting times - the future of JSF

Ed Burns from Sun recently blogged that Sun's JSF team has gone public with their ideas for JSF 2.0. This proposed final draft shows interesting times ahead for JSF. Ed Burns is welcoming comments and suggestions for improvements on the draft on his blog.

Any proposed features that excite you? For me: "Real world, production view description technology, including templating: include something influenced by Facelets, JSFTemplating or Tiles in the specification."

A career path for Oracle developers - consider JDeveloper!

Are you considering your career path in the Oracle core technology arena? Missing 1/2 a brain? Then consider a career in database administration (haha, only joking, really, I have plenty of DBA friends and they all have more than 1/2 a brain ;)

Or are you a traditional Oracle Forms or Reports developer who shies away from DBA work because you think DBA work is dull (haha, no really, I'm only joking), aren't actually scared of users (still a joke, I kid you not), and think optimisation is something left for, well, who cares?

The problem for traditional Oracle developers, for those actually concerned about career development while remaining a developer (and by this I mean you have aspirations to stay a programmer, become a top notch developer, you're not retiring soon, you don't want to become a manager, or worse yet, a DBA (seriously I really am joking)), is where do you go from here, given the traditional development areas are dying (ie. Forms & Reports), while sticking in the Oracle core-tech area, where all the big money and good looking people are?

(Alright, I'm being discriminatory to DBAs in this post, but a little fun never hurt anyone, except my DBA pals who get this all the time ;)

As far as can be made out at the moment, traditional Oracle developers have the following avenues to go down:

0) Convert to the dark-side and learn .Net or Ruby on Rails

1) Don't learn anything knew and retire using traditional Oracle development tools like Forms.... knowing good and well that Cobol programmers are now rolling in cash, so you will too (anybody actually ever encountered a rich Cobol programmer?..... oh, and, is, um, willing to give me some cash?)

2) Application Express aka Apex aka HTML DB aka mod_plsql with flashy bits and yet another respository

3) JDeveloper with ADF Business Components and ADF Faces

(oh, and maybe #4, XML/BI Publisher - which I'll leave out of this discussion)

Let's investigate these options.

#0, ah, no, that's an entirely different post.

#1 assumes that the Oracle Forms world is dying. Actually, it's not, but don't expect anything exciting to happen in the Forms arena any time soon. Are you happy extending existing Forms systems, like a safe job, and no interest in learning new stuff? Stick to Forms, though I question why you're in computing in the first place? Have you forgotten the chase .... learning new technologies, making your users "oooooh" and "ahhhhh", making your fellow programmers jealous with tales of the latest technologies you get to play with, the thrill of project deadlines, the thrill of finding bugs and passing those project deadlines, the excitement as the boss shakes your hand and says "Well done Jones" (even if your name isn't Jones)?

I digress.

What about #2, Apex (Application Express)? Weeeeeeeeeell, here's my sticking point with Apex: Apex is too proprietary compared to JDeveloper and is worse for your developer career path. Coincidentally in this manner Apex is just like Forms - and by this I mean have you ever leaped to a new development environment and said - "Ah, this is just like Oracle Forms"? No, well that's because not much else does what Forms does these days - so what you've learnt wont really help you elsewhere. Bang goes the career path with Forms or Apex.

This isn't to say JDev doesn't include proprietary technology, because it does. Lets explain this a little bit more when considering Apex....

If you learn Apex, you will have less of an opportunity to understand and expose yourself to concepts that JDeveloper's ADF makes use of, and in turn the principles that ADF uses that are used elsewhere in computing and are considered good software practice. Or in other words, JDeveloper's ADF will provide a higher educational stepping stone away from the old Forms market than Apex will, as it will teach you new languages, expose you to concepts of design patterns and software architecture, give you a better ability to compare technology X and Y, and might even make you a nicer person (didn't happen for me, but you never know).... and thus (drum-roll please) provide a development career path too.

Why? JDeveloper's ADF is based on something called the MVC design pattern. This software architecture pattern is used heavily in 3-tier based systems (MVC is non existent in Forms) and among other technologies (including Ruby on Rails if we want to name a buzz-world compliant language/framework), and is used within the J2EE world for building enterprise scale applications (and remember, most of the work in the Oracle arena is in enterprise apps, not dinky little apps running standalone on a PC).

The key to the MVC architecture is that it allows us to build and swap-in separate technologies to deal with the model (ie. the persistence API that talks to the database), the view end (ie. the UI technology such as JSF, ADF Faces, Swing etc) for rendering the user interface (UI) and controller technologies (simplistically the bit that co-ordinates the M and the V).

For a Forms programmer moving to the JDev ADF world, the developer is encouraged to use ADF Business Components, and ADF Faces. ADF BC is a persistence layer technology, and ADF Faces the UI side. It all fits together in an MVC pattern.

Now once you've been exposed to 1 set of Model or View technologies, be they ADF BC and ADF Faces, you'll become rapidly aware of other choices. For example in the Java world, there are several other choices for persistence layer technologies (the Model layer), including Hibernate, Toplink, EJB and so on. The thing to realise about all these technologies is that a) there all attempting to do the same thing and b) they all have to solve the same problems. With out a doubt c) some do this better than others..... and in time Darwinism will take hold and leave us with the best-of-breed.

As you become more proficient in Java, and look at these other technologies, and even non-Java based solutions, you start to ask some really tough questions of new emerging technologies..... is it stateful or stateless? Does it provide failover? Can it scale? does it handle the browser back button? can it plug into our SSO services .... and so on .... (Don't know what I'm talking about? Turn to the JDeveloper side my apprentice ;)

One of the other career benefits is, unlike if the Forms or Apex market dies, if one of the technologies you've been using in the JDev sphere (or Java sphere) is quickly superseded by one of the other players, say ADF BC falls to EJB 3.0, at least you're knowledge isn't so heavily wrapped around a proprietary solution, and you don't get the sack.

The beauty too, is once you're at this level, you're no longer just a simple old Oracle developer, you're way on the right track to become a hot Oracle programmer who will be directing projects at your organisation, driving hot cars, and making a fortune on the stock market (well, 1 out of 3 ain't bad).

Surely this has got to be better than being a DBA, Forms or Apex programmer for the rest of your (programmer) life ;)

[This post was inspired by Grant Ronald's recent post What is faster for development: Oracle Forms or JDeveloper? Grant's article is a great one in telling you how simple JDev programming is becoming.... but I wanted to consider besides the technology "why", from the developer's career path, you should consider JDev]

Epilogue: Oracle developers should also carefully consider JDeveloper as there has been many comments that Oracle's EBS v12 and the whole Fusion stack will use JDeveloper technologies. The point being is if you're organisation uses these technologies and you are tasked to extend them, JDeveloper will be the tool that you use to do these. I've not been exposed to either of these technologies (EBS v12 or Fusion) so please take this comment with a grain of salt, unless somebody is willing to post a link to any webpages that prove this fact.

Epliogue x 2: The other purpose behind this post is to start discussions about which *is* better, JDev + ADF or Apex. Currently Oracle is IMHO being "Mum" about this. Given that there are dozens of bloggers now selling, um, promoting Apex and JDeveloper, what about their thoughts on which is they way to go?.... with consideration from all sorts of angles like scalability, skill sets required, failover support, ease of development and so on.

Wednesday, 28 March 2007

Support for Kathy Sierra

A typical morning for me includes scanning around 100 blogs. One blog I read from top to bottom is Kathy Sierra's Creating Passionate Users. I wont hark on the quality of Kathy's posts as they speak for themselves. I've always been particularly interested in her views on user groups and presenting.

Recently Kathy received death threats and other horrible comments on various websites, and this has stirred me to post my support for Kathy. Such behavior is obviously not on. I wish the cops all the luck in finding these idiots and throwing them in jail, and I also hope Kathy recovers her composure and sense of self not to be intimidated by what can only be the lowest types on this planet.

I hope you'll show your support for Kathy too.

Sunday, 25 March 2007

NZOUG 2007 conference report

As reported earlier on this blog, the New Zealand Oracle User Group (NZOUG) kindly invited Penny Cookson and I to present one paper on "Good Forms programmers never die, they just switch to JDeveloper (JDeveloper for Oracle dinosaurs)", and a double presentation from me on "All you (ever) needed to know about Java", at their 2007 Auckland conference.

I thought, while waiting for my flight back to Australia, I'd write a little summary on the conference.

NZOUG has a strong relation with the Australian Oracle User Group (AUSOUG) going back to the days when both user groups where under the single banner of ANZORA (Australian New Zealand ORAcle user group). Overtime since I'd moved from Perth to Melbourne, I'd had a chance to meet some of the NZOUG committee who had jumped the big blue bit to come to our conferences. The good thing about the New Zealanders, among many amicable attributes, is they are an extremely friendly bunch, always willing to have a chat, and have a great quality on being interested in what their members' want, rather than focusing on the politics that committee work seems to throw up.

The NZOUG 2007 conference was held in Auckland over 2 days. I've been told by some of the old hands in the NZ Oracle market that the conference has been held in better locations in NZ..... but that always seems to be the way; regulars on the conference scene always seem to rave about one conference or other in the past where they "party-hardy-ed" and got up to all sorts of shenanigans. I suspect the difference is a few extra years, family & kids, that makes all the difference now.... but wouldn't want to insinuate that some of my colleagues, are just, well, old ;)

The 2007 conference was held at Auckland's Skycity, a missmash of hotel, casino, conference facilities and the Skycity tower. Overall while the casino and hotel facilities where the usual commercial glossy cheese, the conference centre facilities were well laid out, staff friendly and diligent, and I thought a good choice of venue.

This year the conference attracted 240 delegates from around NZ and elsewhere, including a few Australians. While this number doesn't compare anything like San Fran OOW, and about 1/2 as small as the equivalent AUSOUG event, with each conference in mind, the pool of people that can be drawn is significantly smaller. OOW draws from the America population of 300 million and many overseas delegates, Australia 20 million, and NZ just 4.6 million. Given this the 240 result for NZ is a strong one and shows that the local Oracle community is doing well.

One of the problems with a subjectively small delegate numbers is that vendors and sponsors won't attend, with the perception small attendees means small sales. But again NZOUG was ahead of the game with strong turn out from vendors, including Oracle, RedHat, Quest Software, HP, and what appeared to be a whole array of local vendors. This strong turn out, and I'm told a regular turn-out by vendors, shows the vendors' confidence in the NZ event in providing business.

Of course most members don't head to the conference to see vendors, but rather attend presentations.

Luckily both my presentations were on day 2, so I had the chance to attend several presentations on day 1.

Day 1

Day 1 kicked off with 2 keynote presentations, one from Ian White, the ANZ Oracle head, and another from RedHat, both sponsors of the conference.

Ian White has the reputation (and don't tell him this) for bring a bit of dry presenter being an ex-accountant type, and a Perth boy to count (knowing full well that I'm also a Perth boy ;). However in today's IT world, in presenting in a 45m slot, Ian had a hard sell, as he had to talk about the breadth of Oracle's business and recent acquisitions, as well as address the local NZ market. So where I was expecting to be bored, I'll give credit where credit is due, I did actually take interest and learn a couple of things during Ian's presentation (like what TimesTen and the Berkley db releases are actually aimed at). Of particular interest was how in specific vertical industries, such as retail, comms, banks etc, how Oracle through its acquisitions can now supply nearly every business system such industries need - this was presented diagrammatically and clearly; impressive stuff.

Ian was followed by Gus Robertson from RedHat. I'll be blunt and say RedHat wasted its chance here with the keynote. RedHat, honestly, get over the Open Source is good message, it's a 2000 message, not a 2007 message. And, when you come to an Oracle conference full of Oracle users, rewrite your presentations to be Oracle specific, know your audience. And while we're at it, maybe have the b@lls to address Unbreakable Linux directly, rather than blathering around our customer support is best approach.

Next the real presentations started. Of particular note to myself was Gilbert Matthew's presentation. Gilbert and his team who works for the Agriculture Department of Western Australia, and a previous JDeveloper client of mine, presented a case study of their adoption on ADF BC/Faces on their most recent project. Though the presentation was a bit too hard core for the locals attending who didn't seem to have been exposed to JDev in any great way, I was interested in seeing how Gilbert has attacked and solved coding problems that were beyond what JDev supports out of the box. Why? Well it showed that given the intro to JDev, Gilbert's team were able to go beyond the standard drag & drop JDev app, and successfully implement some complex solutions. I think this shows JDev, or more specifically ADF is maturing as a framework allowing coders to leap over the ADF learning curve to focus on solving other coding requirements.

During Gilbert's presentation, with my handy camera, I snuck next door to see how Penny's Application Express Workshop was going. Penny who runs Sage Computing Services (and I must declare, my boss), is a regular supporter of user groups, and somewhat of a personality in both Australia and NZ. As usual, Penny's hands-on workshop room was full with keen students, hacking away in Apex. It shows, even though JDev is the future for Oracle, EBS and so on, many are looking for a simple, quick and ultimately productive tool for creating small and medium sized applications.

Following this I sat in on Paul Whitehouse from Asparona double hands-on slot for XML Publisher (aka BI Publisher). Given my previous committee duties at other conferences, I hadn't yet seen this tool in action, and was keen to finally sit on in a session. I was very pleasantly surprised how simple XML Publisher is. Its quite obvious why this tool will survive over the older Oracle Reports.... because it builds upon the user's MS Word knowledge, rather than some proprietary WSYWIG report designer. Paul did a great job of showing the attendees how to produce a dare I say "pretty" invoice based on an XML data file.

Finally day 1 I dropped in on Oracle's Barbara Beattie's presentation on EBS 12. I've made as a general rule in my development role, to avoid any system that deals moving $$$$s around. However I was keen to see EBS 12 in action as I wanted to see the new ADF Faces screen making an appearance.

I quite liked Barbara's approach to presenting EBS 12. The marketing collateral for EBS 12 is that focusing on "global business". Read this 1 way and that means it's a new release that supports more countries/locales. That's a hard sell. Why, as an NZ/Australian EBS customer would I care that there is better overseas support?

Barbara managed to switch this message around though and indicated that EBS 12 allows the one EBS system to do business in multiple countries, meeting as example the tax and regulatory requirements of each country based on the same set of ledgers. This is a more applicable selling strategy to the local market.

I often wonder why a company like Oracle, lets the American marketing division dictate a single message of a new product, that may not be applicable to overseas local markets, particular in the business market as separate to the IT core-tech areas. In TV advertising, you often see marketers change the actors and the accents for whichever local market they are advertising on to make the watchers more at home and comfortable. Surely, with the huge marketing resources at Oracle's disposal, they could develop messages for the different markets..... and by different markets I don't mean different cultural markets, but different scale of markets. Obviously the ANZ market is not the size of the USA or EU markets, so a sales pitch of "global solution" is going to be a poor sell. Yes yes, the ANZ market is only small change for Oracle compared to elsewhere, but it's still a relatively profitable market so should be worth the effort. Is this just another case of The-American-Way is best?

But I guess the localised marketing responsibility is the job of the local Oracle representatives, and Barbara filled this role well, by addressing some of the EBS 12 enhancements and matching them to some of her ex-customers sitting in the same presentation. Also the last section on "Why should I upgrade?" directly addressing this question was a good addition.

As mentioned, of particular interest to myself was to see some of the EBS 12 ADF Faces-JDev developed screens, and I wasn't disappointed, with about 20 screens demoed. What did surprise me as a 1st impression was how vanilla the EBS 12 interface looked. Barbara mentioned that Oracle had performed R&D on developing the look, feel and usability of EBS 12, but in my opinion it looked like the EBS team were trying not to complicate the interface with too much visual colourful information.

However as we looked at further screens my impression changed. This is the first time I've seen a major data intensive app done in the web world (unless you consider OEM such an app), and as I suspected, I think at this time the layout and controls to navigate between screens looks clumsy.... there was just too many tab controls, header sections, and links on the screen. I think Oracle has going to work on a better way of doing this sort of data-intensive app in the browser world.... some sort of new control that allows easy navigation but hides the clutter, or a new way of laying out the screens where it works on a top-to-bottom approach, or, I dunno, something, it just looked cluttered. Just ideas on my part, but the screen layout looked immature and needs work.

One thing I will note however, is that I've seen the JDev 11g ADF Faces demo, and I noted that the EBS 12 screens seemed to be laid out in such a fashion to make use of those new slider controls, collapsible menu-trees, and so on, that in a form would address my comments above. I've a sneaking suspicion that Oracle has done this deliberately, and we may see a release of EBS of the future that is an interface upgrade, with very little work on Oracle's part, with instant useability benefit to the EBS users.

Day 1 was ended with a social dinner which was good fun, with a local actor troop keeping the crowd happy with an art-robbery mystery, and the venue providing what was considered d@mn-fine-grub.

Day 2

On day 2 I switched over to being the actual presenter instead.

Penny and my presentation "Good Forms programmers never die, they just switch to JDeveloper (JDeveloper for Oracle dinosaurs)" went well, and I hope we sold the message that JDeveloper and ADF now provides an alternative to traditional Oracle Forms where ADF is both simple and flexible whichever you require; simple based around declarative development, and flexible on the idea you can drop down to the Java ADF framework when required for more complex code solutions.

My 2nd double presentation for the day, "All you (ever) needed to know about Java" was a natural extension of the JDev presentation, where among showing the basics of Java, the messages of Java is simple, and even easier when all your doing is plugging in code into frameworks like ADF, rather thank writing your own APIs.

The 2nd presentation was a bit of a hard sell, being the last 2hrs of the conference on a Friday straight after lunch.... always a hard timeslot.... but luckily I had some "hard-core" coders interested, and received a good array of questions. The best bit about teaching Java is when you see the penny drop about by-reference variables and casting, especially for the PL/SQL coders who know nothing about such things (pointers? um, what? ;)

Overall the Sage presentations went well, and I was pleased to have delegates thank me afterwards and ask even more questions.... that makes presenting worthwhile, certainly the kind gratitude, but also the interest to ask more questions and the chance to discuss something that I'm interested in and share ideas. That's what user groups are about.

As summary the 2007 NZOUG conference was a good event. I'd like to thank the NZ committee for inviting me to present, and I hope I can visit again next year.

The final point I'd like to make is that the key goal of a conference should be to inspire its attendees, to take what they've learnt and head back to work with new ideas in hand. The NZ conference did this for me, giving me a new found interest in looking at some of the alternative database technologies, and a mental note to get into XML/BI Publisher really soon. So thanks NZ, you did a good job.

Saturday, 17 March 2007

My most popular JDeveloper pages

Of the 16 posts under my JDeveloper blog since I started a couple months back, the following pages are the top visited:
2 other posts that have low but consistent reads are the following interview articles:
Like a lot of bloggers, it's interesting to see statistics on which articles you write are the most popular. I'm using Statcounter.com to keep track of this, as well as how readers actually arrive at my blog pages.

Curiously, and maybe a bit silly of me not to realise this, most accesses to my pages are from Google searches. I was under the mistaken impression that regular JDeveloper blog readers would be the usual cliental, but Google searches account for 75% of the hits on my blog, usually based around pure JSF based searches, not Oracle, ADF Faces, ADF BC or JDeveloper related.

Otherwise the 3 most common methods for readers to get to my blog are from the JDeveloper blog aggregator hosted by the Ric Smith at The Peninsula's Edge (Great work & thanks Ric, and I'm becoming pretty good at spelling Peninsula too!), the Oracle Java newsletter, or the JSF OTN website.

What countries do the majority of queries come from?
  • 24% United States
  • 11% Austria
  • 7% UK
  • 6% Canada
  • 4% Ukraine
  • 3% Spain
  • 3% Columbia
  • 3% Poland
  • 3% Australia
... and so on. The USA being at the top doesn't surprise me. Austria being 2nd does and shows that I don't know something about Austria's IT market. A dismal effort of Australia at 3%, showing that a) I'm probably nearly the only Australian reading my site (is it really that bad?), and b) Australian Oracle developers don't care about JDeveloper or JSF :(..... Maybe I should start mentioning this blog at my presentations.... but that seems a bit ego centric if you ask me.

I'd be curious to know from other JDeveloper bloggers who are keeping statistics, what services are they using to record stats, and what trends are they seeing.

Tuesday, 13 March 2007

Congratulations to Tony Jambu - a new Oracle Ace in our ranks

I'm very happy to announce one of our long standing AUSOUG committee members Tony Jambu, has been awarded by Oracle, the much-sort-after Oracle Ace Award. Tony has been a long, consistent and dedicated personality on the Australian and overseas Oracle conference and user group scene, so this award from Oracle is a small and prestigious show of Oracle's appreciation of his efforts. As President of the Victorian AUSOUG committee, I'd like to extend my congratulations to Tony on receiving this award, and note once again how lucky Australia as well as Melbourne is to have such Oracle talent in our ranks.

For the record, how does Oracle pick an Oracle Ace? Oracle Aces are technically proficient and eager to share their experience, whether through writing books, articles, or blogs, speaking at events, participating in OTN Discussion Forums, or simply serving as Oracle advocates in their respective organisations. Candidates are nominated by either existing Oracle Aces or Oracle product management on an ongoing basis and ratified by a nomination committee.

Some explicit language about implicit EL objects

As soon as you start playing with ADF Faces and dropping data bound controls onto a page, you will have been exposed to the concept of implicit objects in JSF's Expression Language (EL). An implicit object is similar to a managed bean, but one that is created and maintained by the JSF engine, which you may make reference to with EL.

An understanding of the implicit EL objects gives a better understanding of the managed bean facility, as well as what objects are being created and maintained behind the scenes by the JSF servlet and ADF framework which the JDeveloper programmer can make use of.

#{data}
#{bindings}


As an example most readers who have used ADF Faces will be familiar with the following where an inputText control has been bound to a field in your ADF Faces page definition file:

<af:inputText value="#{bindings.ResourceCode.inputValue}"
  label="#{bindings.ResourceCode.label}"
  required="#{bindings.ResourceCode.mandatory}"
  columns="#{bindings.ResourceCode.displayWidth}"/>


You'll note the bindings keyword in the EL expression. This maps to the page definitions file for the current webpage, or more correctly it references the oracle.adf.model.binding.DCBindingContainer from the ADF Faces binding layer, that was instantiated by the ADF Faces servlet when the user accessed the web page.

In turn you may have seen an EL expression that references #{data}. This refers to the oracle.adf.model.BindingContext, an object responsible among other things for referencing all the DCBindingContainer objects in your ADF Faces application.

Both of these ADF Faces objects are well explained in the ADF Guide for Forms/4GL Programmers and the online documentation.

There are however other implicit objects available for the programmer to work with that may not be as well known.

#{facesContext}

The implicit EL object #{facesContext} maintained by the JSF servlet is instantiated from javax.faces.context.FacesContext, for each JSF request made upon the mid-tier. As the JSF lifecycle processes the current JSF request, the FacesContext instance carries the information about the page to be rendered, essentially the JSF response to the original request.

It's not uncommon in your backing bean code to grab the FacesContext object, but as can be seen is also easily accessible to the JSF webpage through the implicit EL object. You're unlikely to make use of it in your JSF webpages as it wasn't really designed to interact with the JSF webpages directly. But you may use the JSF managed bean facility to initialise properties within the FacesContext at runtime using EL.

#{adfFacesContext}

If you're specifically using ADF Faces, and not just JSF, ADF Faces makes available the implicit EL object #{adfFacesContext} instantiated from oracle.adf.view.faces.context.AdfFacesContext. At its simplest AdfFacesContext represents Oracle's ADF extensions to JSF, and you will have seen within your ViewController project's WEB-INF directory the adf-faces-config.xml file, which stores the design-time settings for this extension. Like the FacesContext object, a single AdfFacesContext is instantiated for each JSF request. Also similar to the FacesContext object, you may have made use of the AdfFacesContext object in your backing bean code.

The JDeveloper documentation page About Value Binding and the ADF Faces Implicit Object gives a good explanation of what's available through this object.

#{view}

The one unusual implicit object is the view object that provides access to the UIViewRoot object from the FacesContext for the current request, essentially the JSF page component tree. Most of the properties within the view object are not useful, but the locale and renderKitId properties may allow you to show different components based on the language or the type of device you're rending in.

#{cookie}
#{header}
#{headerValues}
#{initParam}
#{param}
#{paramValues}


Most of these objects will be familiar to JSP programmers and there is plenty of documentation across the internet on these objects for the uninitiated. I'll quote the JSF 1.1 spec here for quick reference:
  • cookie - an immutable Map of the cookie values for the current request, keyed by cookie name.

  • header - an immutable Map of HTTP header values for the current request, keyed by header name. Only the first value for each header name is included.

  • headerValues - an immutable Map of String arrays containing all of the header values for HTTP headers in the current request, keyed by header name.

  • initParam - an immutable Map of the context initialization parameters for this web application.

  • param - an immutable Map of the request parameters for this request, keyed by parameter name. Only the first value for each parameter name is included.

  • paramValues - an immutable Map of String arrays containing all of the parameter values for request parameters in the current request, keyed by parameter name.

#{requestScope}
#{sessionScope}
#{applicationScope}


When you specify a JSF managed bean in the faces-config.xml file, you also specify the scope of the bean, namely a request, session or application scoped bean. Later on to make request to that bean within EL it's simply a case of specifying something like #{myBean}.

You can be more explicit about which scope the bean exists in and make reference to either the implicit object #{requestScope}, #{sessionScope} or #{applicationScope}. For example #{requestScope.myBean}. If however you make a reference to such a bean and it doesn't exist within this scope, an exception will be thrown.

[There's one little caveat to this approach. Thanks to Brenden Anstey on OTN for his assistance. To reference the bean explicitly specifying the scope, such as #{requestScope.myBean}, you must include the <jsp:useBean> tag as follows]

<jsp:useBean id="myBean" class="MyBean" scope="request"/>

Alternatively if you skip specifying the scope of the bean within your EL, such as #{myBean}, the JSF engine will search the request, session and application scopes respectively to find the bean. If it isn't found, JSF then looks for the specification of the managed bean in the faces-config.xml file under each <managed-bean> tag, and if found, instantiates it. Finally if not found JSF flags an error.

Sunday, 4 March 2007

$1,320,132!

Amazing, I've been blogging for a whole month now, and my website if worth $1,320,132! I hope that's US$ and not AUS$.

Now if I can just find a buyer. Maybe Oracle has a few spare dollars after the Hyperion deal.

[Damn! As of March 13th my blog has dropped back to $37. I should have sold while I had the chance :(]

I'm off! I'm off! I'm off to see the wizard of.... um... actually I'm going to the NZOUG conference to present

As a supporter of Oracle user groups, I'd like to quickly blog that I'm off to the New Zealand Oracle User Group (NZOUG) conference 22nd and 23rd March 2007 at the Sky City Convention Centre in Auckland.

This will be my first "international" conference and the NZOUG has been kind enough to accept my double presentation, as well as a second presentation I'll be co-presenting with Penny Cookson from SAGE Computing Services:
  • All you (ever) needed to know about Java - a 2hr Java introduction for the not-so feint-hearted. This presentation is aimed at PL/SQL programmers who want to quickly discover that the Java language isn't really that hard regardless of what moaning you've heard elsewhere.
  • Old Forms programmers never die, they just switch to JDeveloper (aka JDeveloper ADF BC & Faces for Forms dinosaurs) - a co presentation with Penny Cookson showing a comparison of Oracle Forms to JDeveloper's ADF Business Component and ADF Faces.
I'm very much looking forward to presenting in New Zealand as a change from the local AUSOUG events. Hopefully we'll see you in Auckland too. If not, keep in mind the Australian AUSOUG and OAUG conference in Melbourne and Perth in November 2007. It presents a great opportunity to escape those northern hemisphere winters.

[Epilogue] I've also been "recruited" to present in my old-home town Perth while I'm in the vicinity teaching, on Wednesday 7th March for the Western Australian branch of AUSOUG. Always happy to see and present to the Perth crew; Perth is so much more relaxed than just about everywhere else in the world. Hopefully any Perth or Broome readers will take time out to attend:

The DBAs' realm: Deployment of JDev ADF applications to OC4J – JDeveloper ADF applications are becoming all the rage in Oracle development circles, just look at EBS v12 (Forms is dead! Long live Forms! Forms is dead!). But developing an ADF application is different from deploying it for production purposes on OC4J under OAS, and the task moves from the realms of the developer to that of the DBA (the buck has to stop somewhere). DBAs need to have an understanding of how and what JDeveloper does when deploying to OC4J, and what the issues are, rather than leaving it in the hands of those pesky developers. The presentation will include
  • A demo with the Standalone OC4J as a "simplier" OAS environment
  • The JDeveloper ADF Runtime Installer requirement
  • Establishing an App Server connection with JDeveloper
  • A consideration of J2EE archive file types
  • A look at deployment profiles
  • Deployment
  • Running your web app from the OC4J
  • Configuring OC4J database connections
  • A consideration of software dependencies and change control