Oracle Portlet Development – Consuming RSS Feeds


Looking back at the tutorial I posted last September 22, 2011, it was a very neat  tutorial that really showcases the power of Oracle Portlet Development using JDeveloper and the flexibility of WebCenter for consuming remote portets.  With that I created my own version of the tutorial just for fun!

Although, this isn’t a video, its just a power point presentation and I never got the WebCenter installation part (I don’t have EM in my laptop and besides, I don’t have that powerful machine yet). Here it is!

Screenshot of the JSP page with RSS Feed Data.

Download the Project Here.

Enjoy!

Oracle ADF – End to End Simple Application Tutorial


I find this video very nice and easy to catch up with. Very detailed and straight to the hands-on exercise.

http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/JDevExperience/JDevExperience112flv.html

The demonstrator uses Oracle JDeveloper to develop a simple Enterprise solution that uses Oracle ADF Framework.

Key notes:

  1. JDeveloper supports both Declarative and Narrative development.
  2. Developers can create EJB / JPA Business components and expose it through Data Controls.
  3. Data Controls are created to expose functionalities to Oracle ADF.
  4. Once Data Controls are created, this can be used to create ADF based form components like Manager Forms and Graphs

Review: The tutorial is more of a declarative way of developing ADF applications. It first creates a Database Connection, then create an EJB Diagram to create Session Beans and JPA Entities. This beans will be the back bone (model) of our application for database transactions. Next, create Data Controls to expose EJBs for Oracle ADF. Then after exposing these, we can now use the ADF framework to create pages and combine very useful ADF components (accordion, data grids, graphs etc.)

This tutorial really showcased the power of Oracle ADF + the use of JDeveloper. Its completely a new way of developing Java EE applications. JDeveloper brings another level of development scheme as showed on the tutorial, its a very flexible IDE that support both declarative and narrative development method.  The addition of full support on Oracle ADF sums up the whole package as it allows developers to drag and drop exposed ADF data controls and create components for it (graphs, forms, etc.).

Oracle ADF/JSF – Page Template Development


Templating is the commonly used approach when building the presentation layer of a Web Application. It is never wise for a developer to not consider templating in their design, especially when a lot of users will view your side on a daily basis and a lot of page will be develop for the solution.

Efficiency is the term in doing templates, its somehow eases the developer and designer of their workload by developing a constant body of page template that can be used globally. it is by far, the most accurate form of “re-usability”.

Though there are a lot of templating technology for Java EE. I find only two of them very flexible and easy to learn (of course, excluding Velocity since its more of a presentation generator api). Apache – Tiles and JSF Templating.

Example of Struts Tiles Templating.

http://www.vaannila.com/struts/struts-example/struts-tiles-example-1.html

Example of JSF Templating

http://www.mkyong.com/jsf2/jsf-2-templating-with-facelets-example/

For this post, I will try to create a ADF Template using Oracle JDeveloper 11g. ADF templating is different a bit different from JSF templating.

1st: Create the Page Template

Right Click on a Folder > New > JSP Page

The Page Template creation dialog is shown. Now Tick on the Use quick start layout to customize our Template.

Choose from a variaty of default layouts.

Ticked on “Apply Themes” to apply default skins. We will ticked this one for this tutorial.

Click OK to create the actual template.

The files where updated to comply with the template we just created: faces-config.xml – the new render kit (fusion render kit) was introduce to server as the overall render kit for any pages developed. The trinidad-config is where the skin family is indicated and web.xml to add new libraries, init paramters and external source files support for the new skin and page (swf – flash).

Lets tweak the template first before using it. Lets put something on the “top”,”first” and “center” facelets. Go to Source and define faclets on the component section of the template. This section is where all the facelets should be defined.

 
      <component xmlns="http://xmlns.oracle.com/adf/faces/rich/component">
        <display-name>sample_adf_template</display-name>
        <facet>
                <facet-name>centerDetail</facet-name>
                <description>This child draws out the detailed forecast</description>
         </facet>
          <facet>
                <facet-name>centerTop</facet-name>
                <description>This child draws out the detailed forecast</description>
         </facet>
         <facet>
                <facet-name>centerFirst</facet-name>
                <description>This child draws out the detailed forecast</description>
         </facet>
      </component>

Put Facelets in the Template Page.

<af:facetReg facetName="centerTop"/>
<af:facetReg facetName="centerFirst"/>
<af:facetReg facetName="centerDetail"/>

2nd: Use the Page template

Lets create the page using the page template. Click on Pages folder (create one) > New > JSF Page. Choose the JSF Template we created.

Create the Page.

        <af:pageTemplate viewId="/pagetemplates/sample_adf_template.jspx" id="pt1">
            <f:facet name="centerDetail">
            <af:panelGroupLayout layout="vertical">
                <f:verbatim>THIS IS JUST A STRING</f:verbatim>
            </af:panelGroupLayout>
          </f:facet>
          <f:facet name="centerTop">
            <af:panelGroupLayout layout="vertical">
              <af:outputText value="HELLO WORLD"/>
            </af:panelGroupLayout>
          </f:facet>
          <f:facet name="centerFirst">
            <af:panelGroupLayout layout="vertical">
              <af:outputText value="HELLO WORLD"/>
            </af:panelGroupLayout>
          </f:facet>
        </af:pageTemplate>

3rd: Run the Page that uses the Page Template.

Result:

Download the source here.

Review: Oracle ADF really puts a lot to the table. Arrays of components and custom tools plus, a great IDE to build enterprise applications with it. Page Templating is not very far from JSF templating, it uses the same concept of inserting ui components (for ADF’s case, facelets) to get page fragments for consistency.