Posts tagged adf library
Creating reusable ADF Library with generic live resource bundle editing functionality and reusing it in any ADF application1
In previous articles, I have introduced functionality to centralize management of boilerplate text elements such as prompt, title, hint text and messages in resource bundles. This also allows for language or user group and other context sensitive values for these boilerplate text elements. The resource bundles, as was demonstrated, can be backed by database tables, refreshed at run time and even be edited from within the JSF application itself. The last installment in the series before this one introduced an approach that allows for live page editing with minimal impact on the page itself – through run time UI component tree manipulation. However, the code for handling the live editing and dealing with the resource bundles was still part of the application making use of that functionality. This article demonstrates how this generic functionality can be isolated in a separate ADF application, deployed to an ADF Library and reused in one or many different ADF applications.
Last night we organized the “Ode to the Task Flow” session at AMIS. After a short presentation introducing the Bounded Task Flow it was time for the hands-on lab: “Build your first taskflow”.
In this lab many of the attendees created their first taskflow, learning the basics of ADF taskflows. This first taskflow receives a job title, and optionally your favorite color via input parameters. Based on that information a welcome message is created. The taskflow is smart enough to invoke the proper logic by using a router to show the correct page fragment based on an input parameter. From this activity, you can change your name in another view activity. This taskflow includes routers, method calls, input parameters, default activities and wild card control flows.
After diner (great Chinese food) there was no time for my usual after diner dip. I had to present a demo on packaging an ADF Task Flow as an ADF Library, and invoking it into a new application. After this demo, the second hands-on lab started. This part of the “Ode to the Taskflow” hands-on lab, was about the mechanism used to achieve reuse across applications: the ADF Library – the bundle in which reusable taskflows are More >
We have been struggling quite a bit with a good approach for modularizing our ADF web applications through the use of (stand alone) Task Flows that are developed in independent projects and assembled into a single Web Application from ADF Libraries. In theory, this is a very structured, decoupled way of developing potentially complex ADF Web Applications – while allowing for reuse. The contextual events mechanism in combination with the task flow input parameters allow definition of a clear interface through which to reuse the task flow. So all seems well.
However, when you try to put this theoretical bliss into actual practice, there are some limitations that you run into. One of the tricky issues we had to deal with is: how can we debug our web application when part of the source of the application is reused from ADF Libraries? How can we put breakpoints in the sources that are part of the ADF Library?
On closer inspection, there seems to be a relatively easy way for doing this – using an additional library definition in JDeveloper that refers to the sources that form the foundation of the ADF Library.
Let’s take a quick look at how this would work:
I have discussed ADF Task Flows before in raving terms and with some simple example to prove my point. To be honest, I have never before really digged deep in any article into the use case of creating a bounded task flow that has ADF Business Components inside, deploying it to an ADF Library and reusing that Task Flow from that library in a completely different ADF application. That may not even have Business Components itself. Now is the time to remedy that omission. And also demonstrate how the consumed task flow – originating from somewhere in the Resource Catalog – can be integrated and synchronized with the consuming page.
It is not very difficult, but some steps must be observed to wire it together neatly.
Our objective in this article:
* Create a bounded task flow EmployeesList that uses ADF Business Components (in this particular case to display data from a database table called EMP, you may have hear it mention before) * Deploy the task flow to an ADF Library to make it reusable in other ADF applications * Create a new ADF Application in which the task flow EmployeesList is reused.
The steps we go through to accomplish this:
1. Create the Bounded Task Flow
2. Deploy More >
Building a repository of reusable ADF artefacts using ADF Libraries – for example: a reusable Placeholder Data Control
Reusability – and from there higher productivity and easier maintenance – is one of the key themes for ADF 11g. There are several important new concepts introduced in this new release, including Task Flows, Declarative Components, Page Templates and Page Fragments. It is of course one thing to create artefacts that are potentially reusable. It is quite another to organize those artefacts and make them available across projects and applications. And that is where the ADF Library comes in. It is the vehicle for packaging up fairly small scoped reusable elements in JAR files that are then made available in the Resource Catalog.
It turns out to be incredibly easy to create an ADF Library – and to reuse one. I will demonstrate that in this article, by turning a Placeholder Data Control that provides off line data binding opportunities for applications using DEPT and EMP. I have created a Placeholder Data Control with Department and Employee Data Types and sample data taken from the SCOTT schema. (see Some more details on ADF Placeholder Data Control (rebind component, master detail, load sample data from CSV file) for details on how to do that). Now I want to make that Placeholder More >