In Jdeveloper 11, have you noticed the option “ADF Library JAR File” in the Gallery under Deployment Profiles? The description makes it sound like an interesting option. You would be able to distribute Task Flows as a reusable library. Such a thing would prove useful where you have many different applications being built and these have some common functionality required like a Login page.
To test this out, I went ahead and created a new ADF view project. I created a new bounded task flow “task-flow-definition”, set to use page fragments. To this I added a single view “view1.jsff” (fragment) containing an output text. The goal was to reuse this task flow as a region in another project. As simple as it gets. Ofcourse, I created a new “ADF Library JAR File” and deployed to a jar that I called “testLibraryADF.jar”.
As the next step, I created another ADF view project under a new application workspace. To this project, I added “testLibrary.jar” as a library. Now when I created a ADF view (test.jspx) and navigated to its design view, the Component Palette showed “”testLibraryADF.jar” in the drop-down. When I chose this, the regions category showed “task-flow-definition” as an item. Dragging and dropping this on the JSF page, allowed me to add it as a region to the page. Everything looked nice and easy until this point. The output text from view1.jsff even displayed on test.jspx in a grayed-out region.
However, when I tried to run test.jspx the application returned an error reading thus:
WARNING: Error trying to include:viewId:/task-flow-definition/view1 uri:/view1.jsff
D:\home\projects\jdevinstance\mywork\TestLibUsage\ViewController\public_html\view1.jsff (The system cannot find the file specified)
I have tried this on TP3 and later on TP4 as well. If you notice ADF is looking for the view1.jsff page from the current ADF view project – the one that is using the reusable library. I would’ve expected ADF to look for it in the JAR that got deployed. :-(
I am tracking this here. (Update: Frank Nimphius confirms that this issue seems to have been fixed in a later build)