July 28, 2009

OTN Developer Days Montreal - August 19

Discover a Faster Way to Develop Ajax -Enabled Application Based on Java and SOA Standards

Get Hands-on with Oracle Jdeveloper, Oracle Application Developer Framework and Oracle Fusion Middleware 11g

You are invited to attend Oracle Technology Network (OTN) Developer Day, a free, hands-on workshop that will give you insight into how to create Ajax-enabled rich Web user interfaces and Java EE-based SOA services with ease.

We'll introduce you to the development platform Oracle is using for its Fusion enterprise applications, and show you how to get up to speed with it. The workshop will get you started developing with the latest versions of Oracle JDeveloper and Oracle ADF 11g, including the Ajax-enabled ADF Faces rich client components.

Wednesday, August 19, 2009
8:00 a.m. – 5:00 p.m.

Fairmont Queen Elizabeth
900 Rene Levesque Blvd. W
Montreal, Quebec, Canada

This workshop is designed for developers, project managers, and architects. Whether you are currently using Java, traditional 4GL tools like Oracle Forms, PeopleTools, and Visual Basic, or just looking for a better development platform - this session is for you. Get explanation from Oracle experts, try your hands at actual development, and get a chance to win an Apple iPod Touch and Oracle prizes.

Come see how Oracle can help you deliver cutting edge UIs and standard -based applications faster with the Oracle Fusion Development software stack. At this event you will:

* Get to know the Oracle Fusion development architecture and strategy from Oracle's experts.
* Learn the easy way to extend your existing development skill sets to incorporate new technologies and architectures that include Service-Oriented Architecture, Java EE, and Web 2.0
* Participate in hands-on labs and experience new technologies in a familiar and productive development environment with Oracle experts guidance.

Click on the Register Now to register for this FREE event. Don't miss your exclusive opportunity to network with your peers and discuss today's most vital application development topics with Oracle experts.

July 20, 2009

Working with ADF Faces Calendar Component

Oracle JDeveloper 11g Release 1 (11.1.1.1.0) has a number of new features and I've created a How-To on the new ADF Calendar Component. I've also included a sample application to demonstrate the use of the Calendar.

The ADF Faces calendar component displays created activities in daily, weekly, monthly, or list view for a given provider or providers where the provider is the owner of an activity.

For details of this new component please review the How-To and provide feedback as appropriate.

April 19, 2009

InSync '09 Conference - Sydney: No Code Fusion Development

This session will be delivered on Tuesday, April 21 at 14:45.

Experience the Oracle Fusion development platform and learn how you can use it today to create better applications faster.

The session introduces you to Oracle JDeveloper and Oracle ADF - the development tool and development platform used for the development of Oracle's Fusion Applications. See how a visual and declarative approach can minimize coding and boost productivity for Oracle developers and for you.

Through an interactive development demo we'll teach you about the technologies used to create rich Internet applications and reusable business services - based on industry standards.

Get a sneak peek into the future of your applications development today.

April 8, 2009

OTN Developer Days - Sydney - April 22

OTN Developer Days coming to Sydney on April 22. Register Now!

The OTN Fusion Developer Days are FREE, hands-on workshop that will give developers hands-on experience creating Ajax-enabled, rich Web user interfaces and Java EE-based SOA services with ease.

We introduce developers to the development platform Oracle is using for its Fusion enterprise applications, and show them how to get up to speed with it. The workshop will get developers developing with the latest versions of Oracle JDeveloper and Oracle ADF 11g - including the Ajax-enabled ADF Faces rich client components, and Oracle WebLogic Server 10.3.

The workshops are targeted at developers, project managers, and architects.

Register Now - and come to the events to meet more potential customers.

March 12, 2009

OTN Developer Days - Boston - April 16

OTN Developer Days coming to Boston on April 16. Register Now!

The OTN Fusion Developer Days are FREE, hands-on workshop that will give developers hands-on experience creating Ajax-enabled, rich Web user interfaces and Java EE-based SOA services with ease.

We introduce developers to the development platform Oracle is using for its Fusion enterprise applications, and show them how to get up to speed with it. The workshop will get developers developing with the latest versions of Oracle JDeveloper and Oracle ADF 11g - including the Ajax-enabled ADF Faces rich client components, and Oracle WebLogic Server 10.3.

The workshops are targeted at developers, project managers, and architects.

Register Now - and come to the events to meet more potential customers.

March 5, 2009

OTN Developer Days - Saint Louis - March 10

OTN Developer Days coming to Saint Louis on March 10. Register Now!

The OTN Fusion Developer Days are FREE, hands-on workshop that will give developers hands-on experience creating Ajax-enabled, rich Web user interfaces and Java EE-based SOA services with ease.

We introduce developers to the development platform Oracle is using for its Fusion enterprise applications, and show them how to get up to speed with it. The workshop will get developers developing with the latest versions of Oracle JDeveloper and Oracle ADF 11g - including the Ajax-enabled ADF Faces rich client components, and Oracle WebLogic Server 10.3.

The workshops are targeted at developers, project managers, and architects.

Register Now - and come to the events to meet more potential customers.

February 25, 2009

Reusable ADF Library (RSSFeedReader)

In this blog entry I'll demonstrate the creation of a reusable component using JDeveloper/ADF 11g, Rome 1.0 RSS and Atom Utilities, and JDOM 1.0. First I'll provide the links to the required software.

Required Downloads:
JDeveloper 11g
Rome 1.0
JDom 1.0
FeedReader Application Workspace

Description of the FeedReader Application:
The simple description of the FeedReader Reusable Component is to create a Fusion Web Application (ADF) which creates both a Model and ViewController project for you. In the model project you want to add the rome.jar and jdom.jar files to your project libraries and classpath. The following steps outline the basic objects I've created for my application.

Feed.java is a simple object with setters and getters that describe the items to be displayed for a particular RSS Feed. The following image is a partial glimpse of the object.
Feed.java


FeedReader.java is an object with two methods processFeed which takes a url and creates a syndication entry that it then passes to the addEntry method which processes each entry 1 by 1 adding them to an ArrayList of Feed objects.
FeedReader.java


Also worth noting are a couple of test clients in the Model project, TestFR.java and FRTestClient.java, that you can take a look at. They were used to validate the data prior to creating the Data Control.

As for creating a Data Control I simply right clicked on the FeedReader.java object and selected create Data Control. The Data Control is needed to expose the attributes and methods to the ViewController. Worth pointing out here is another aspect of the Feed.java object. This object as used in FeedReader.java exposes it's attributes through the Data Control.
Data Control


So now I'll move on to the RSSViewController project. The first thing to do is to create a ADF Bounded Task Flow and to drop a view component on it. The name of the bounded task flow is rsstask-flow-definition and the view is named rssFeedReader.jsff. After creating the bounded task flow I've added a parameter to it for the RSS Feed URL that I'll pass into it as you can see from the following image. The parameter name is RSSURL, it's a string and it is a required input.
ADF Bounded Task Flow


The next step is to set the NDValue for the argument being passed into the processFeed method to the same as that for the Value in the bounded task flow. But first, I must create the rssfeedReader.jsff jsf fragment. I do this by double clicking on the view in the bounded task flow and go with the defaults. I can now design the layout of the jsf fragment. Without going into all the details, I've basically created two outputText components for the titleHead and titleDesc by dragging those attributes from the FeedReader data control onto the jsf fragment. I've then used a For Each operation to iterate through the items of the supplied RSS Feed. Now that this is done, I can select the Bindings tab of the jsf fragment and select the rssFeedReaderPageDef | bindings | processFeed | arg within the Structure Pane and then in the Property Inspector, I set the NDValue to #{pageFlowScope.RSSURL}.
Rss Feed Reader JSF Fragment


I'm almost done. Now to create a deployment profile for the RSSViewController Project. This is done by double clicking on the RSSViewController project, selecting Deployment, selecting New, selecting ADF Library Jar File for the Archive Type, and give it an appropriate name. You should be able to go with the defaults from here but ensure that the Library Dependencies of the Model Project are selected.
Deployment Profile


Also in the RSSViewController Project is a untitled1.jsp jsf page to test out the new reusable ADF Library but I'll explain how to do this in a new workspace to simulate sharing this library with another developer perhaps.

The following image shows what the completed Application Workspace looks like.
Application Workspace


Sharing the Reusable ADF Library:
The first thing to do is to create a new Fusion Web Application Workspace as before. Ensure you've added the rome.jar and jdom.jar files to your project libraries and classpath as before. Then create a new File System Connection to the directory that you've copied the Reusable ADF Library to. After that, in your File System Connections under the Resource Palette, I simply right select the shared library and added it to my project. At this point, I can create a new jsf page and simply drag and drop the bounded task flow from the Component Palette onto my jsf page and supply a RSS Feed URL. Once I'm done with this I can run the page to test it out.
Feed Reader


Since this is but a brief description of the process to reuse this library I've created, I've provided a viewlet that clearly illustrates what I've outlined in "Sharing the Reusable ADF Library".

Feed Reader Viewlet

So that's all there is to it. Your feedback is appreciated.

January 4, 2009

How to deploy a 11g ADF application on Tomcat 6.x

The process of successfully deploying a 11g ADF BC application to Tomcat 6.x has created a buzz in the JDeveloper forums and there appears to be some confusion as to the best approach. This blog entry documents one approach and includes the basic steps required to deploy and run a simple application that uses ADF BC/ADF Faces and ADF binding on Tomcat 6.x.

Note that this is not the official documentation but simply an approach I took to successfully complete the task at hand.

Required Downloads:
Download Tomcat 6.x.
Download JDeveloper 11g.
Download Oracle XE or some other database.
Download Application Workspace TomcatADFApp.zip.
Download database schema soademo.dmp.

High level steps for your Fusion Web Application:
1. Create a Fusion Web Application.
2. Create Business Components from tables. Ensure you create the application module.
3. Edit the default deployment profile.
4. In the WEB-INF/lib Filters of the deployment profile, deselect all libraries.
5. For the Platform in the deployment profile, select Tomcat 6.x as the Default Platform.
6. Ensure that your Application Module uses a Datasource Connection. Not a url connection string.
7. You will need to add a context.xml with your datasource connection details.
8. JPSFilter detail in your web.xml will need to be commented out.
9. Security detail in your adf-config.xml will need to be commented out.
10. Right click on your Viewcontroller and select deploy from context. Deploy to war.

Please download and review the provided Application Workspace for the details.

Install the soademo schema in your database.
1. Create a database user with id/pwd of soademo/oracle.
2. Download soademo.dmp.
2. Run imp soademo.dmp using your schema credentials of soademo/oracle.

High level steps for your Tomcat Application Server Configuration:
1. Create a Datasource connection on Tomcat. Modify server.xml and context.xml in your %CATALINA_HOME%/conf folder.
2. Copy the following libraries from your JDeveloper install to the %CATALINA_HOME%/lib folder.
adf-controller-api.jar
adf-controller-rt-common.jar
adf-controller.jar
adf-faces-databinding-rt.jar
adf-pageflow-dtrt.jar
adf-pageflow-fwk.jar
adf-pageflow-impl.jar
adf-pageflow-rc.jar
adf-richclient-api-11.jar
adf-richclient-impl-11.jar
adf-share-base.jar
adf-share-ca.jar
adf-share-support.jar
adflibfilter.jar
adflogginghandler.jar
adfm.jar
adfmweb.jar
cache.jar
commons-el.jar
db-ca.jar
dms.jar
dvt-faces.jar
dvt-jclient.jar
dvt-utils.jar
fmw_audit.jar
identitystore.jar
inspect4.jar
javatools-nodeps.jar
javax.management.j2ee_1.0.jar
jewt4.jar
jmxframework.jar
jmxspi.jar
jps-api.jar
jps-common.jar
jps-ee.jar
jps-internal.jar
jps-unsupported-api.jar
jsf-api.jar
jsf-ri.jar
jstl.jar
mdsrt.jar
ojdbc6.jar
oracle-el.jar
oraclepki.jar
org.apache.commons.beanutils_1.6.jar
org.apache.commons.collections_3.1.jar
org.apache.commons.logging_1.0.4.jar
osdt_cert.jar
osdt_core.jar
share.jar
standard.jar
trinidad-api.jar
trinidad-impl.jar
wls-api.jar
xercesImpl.jar
xmlef.jar
xmlparserv2.jar
3. Start up Tomcat and take your application war file and drop it in the %CATALINA_HOME%/webapps folder to auto deploy.
4. The application can be accessed through the url: http://localhost:yourAppServerport/TomcatADFApp/faces/OEView.jspx

For another perspective on setting up ADF Faces based JSF Runtime environment in Tomcat 6, please visit Terry Chos's blog.

For details on how to configure Tomcat 6.x for ADF and deploy a 11g Release 1(11.1.1.1.0) ADF application to Tomcat please follow the forum post and solution on Oracle's Technology Network forum for JDeveloper & ADF.