Monday, November 25, 2019

Oracle Webcenter Portal Framework Application Features – Pages & Page Hierarchy

You’ve installed Oracle Webcenter 11.1.1.8.0 in a previous tutorial published here, but you may or may not be aware of these components that are coming into action with that installation.
When you install Oracle Webcenter Portal, the components that you choose to install are deployed to various default managed servers. Table below lists the managed server and the port number on which Oracle Webcenter Portal components are deployed.
ComponentManaged ServerPort
WebCenter PortalWC_Spaces8888
Oracle WebCenter Portal’s Portlet ProducersWC_Portlet8889
Oracle WebCenter Portal’s Pagelet ProdcuerWC_Portlet8889
Oracle WebCenter Portal’s Discussion ServerWC_Collaboration8890
Oracle WebCenter Portal’s Activity Graph EnginesWC_Utilities8891
Oracle WebCenter Portal’s Analytics CollectorWC_Utilities8891
Custom Portal Managed ServerWC_CustomePortal8892
Custom Services Producer Managed ServerWC_CustomServicesProdcuer8793
To leverage certain component(s), you should keep Its server up and running and that may affect the productivity of the developers as that will definitely consume a lot of resources on developer machine.
This tutorial is the first one on this series which aimed to discuss the all Oracle Webcenter Portal features and that definitely should be applied through using of Oracle Webcenter JDeveloper & its Integrated Weblogic Server.

Oracle WebCenter Portal

Oracle WebCenter provides a ready-made enterprise customizable and configurable application called WebCenter Portal that enables you to work and collaborate effectively.
Accessing of that environment can be done through starting the WC_Spaces – Like you did previously and typing the URL http://host:port/webcenter and then log on using domain administrator user like weblogic. In case you specified non default user as domain administrator, you should grant that user the sufficient roles
Both host ad port are referring for the system host and port that WC_Spaces is running on, by default the port number is 8888.
If you were accessing that above URL, you will certainly be standing on the Oracle WebCenter Home Portal. Also, deploying your custom Portal Framework Application and accessing it after then from the same URL will be possible if you’re considering new context root and that was so clear in the Oracle WebCenter Installation tutorial.
Actually, this is not only way that you may use for doing that; you may use JDeveloper Integrated Server as well. JDeveloper Integrated server is just a runtime service that references instance of WebLogic server that allows you to run, test, and debug WebCenter Portal Framework applications from within JDeveloper IDE.
As simple as that, instead of getting your node manager up and running as well as your WC_Spaces and may other servers – It depends on the features you’re using – with a huge consuming for memory and processor performance, single instance would be fair enough for that.

Configuring JDeveloper Integrated Server

Oracle JDeveloper 11.1.1.7.0 is only release that you may use Its integrated server to run Oracle Portal Framework Applications. We’re already clarified you how this can be installed in the Oracle WebCenter Installation Tutorial but that won’t be enough for you to get started your development tasks.
Steps below would help you install, extend and configure JDeveloper Integrated Instance:
  • After JDeveloper get installed as you see in the Oracle WebCenter Tutorial.
  • Make sure you have the latest update of Oracle WebCenter Extensions. From Help menu choose, Check for updates.
Update JDeveloper With Oracle WebCenter Extensions
  • Click finish and restart the JDeveloper once the below image got seen.
Update JDeveloper With Oracle WebCenter Extensions - Before Finish View
  • From view menu, select Application Server Navigator and expand Application Servers node.
JDeveloper Application Servers Node
  • As you noticed above, Integrated WebLogic Server listed isn’t till now configured and it needs some additional steps from your side to be like that.
  • Right click on the Integrated WebLogic Server node and choose Create Default Domain.
Configure Default Domain Popup
  • Fill in your preferred data like administrator id : weblogic, password: weblogic123, listen address : mohammad-amr-lt and listen port : 7101 and click okay. Waiting till JDeveloper creates the domain for you.
Configure Default Domain - Domain Building
  • Success domain creation should lead you to see these messages below:
Configure Default Domain - Domain Created
  • Now access http://10.10.90.3:7101/console and you should see the below login page, so log on using weblogic/weblogic123.
Logged In Into Integrated WebLogic Domain

Exploring Features of Portal Framework Application

A WebCenter Portal Framework Application is a standard ADF web application that includes Portal features, like navigation, pages, page templates, content, and more.
That is, Oracle Webcenter Portal Framework adds a number of Portal-Specific features to an ADF Application. You’ve created your own first Oracle Webcenter Portal Framework Application previously and you see how you can we use a JDeveloper for managing this.
This time, you will go so far from just getting a well-running Oracle Webcenter Portal Framework Application to get more details about these features that are provided by this Framework.

Pages And Page Hierarchies Features

This feature allows the developers to formulate their pages into a tree structure manner, (i.e. Parent-Child relationship). This type of formulation allows convenient propagation and inheritance of security settings from pages to sub-pages as well as structural the overall Portal that you’re going to build.
Basically, any Portal may consists of multiple pages, each page located there in may contain one or more entities like Task Flows, Portlets and content. It also may contain a navigational interface like navigation Tree, Tabs or bread crumbs.
Page hierarchy concept is acting upon your Portal Framework Pages that are located within your Portal Application beneath Web Content folder like below:
Page Hierarchies & Pages Locations
At this following simple practice, you will create a new Pages About, Help & Info. This newly page hierarchy created will form the navigation model and control the security policies Oracle Portal Framework Application uses to allow/deny users accessibility.
  • Open your JDeveloper IDE.
  • Create your own Oracle Webcenter Framework Application. If you didn’t do that before, you may visit introduction tutorial published here.
  • I assumed that you have a Portal Framework Application in addition to its default pages just like below:
Default Created Portal
  • If your project gets running, you will certainly get the following default page once you access it through http://10.10.90.3:7101/[yourContextRoot]. This actually will invoke the default navigation model and shows you the below page.
Access Default Home Page
Your context root can be controlled by providing custom deployment profile or you may use the default one created by JDeveloper. This will be explained later but at all cases, your deployment URL will be provided by the console of JDeveloper.
  • Add your newly page About by creating a new JSPX file beneath the Web Content / oracle / webcenter / portalapp / pages and name it about.jspx. That could be done by right clicking on pages folder and choosing JSP from the New Gallery dialog.
Create About JSPX - New JSP From Gallery Dialog
  • See your newly created page listed beside all default pages.
Create About JSPX - Created Page
  • Edit your about.jspx to be look like below:
about.jspx

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
  <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
              doctype-system="http://www.w3.org/TR/html4/loose.dtd"
              doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
  <jsp:directive.page contentType="text/html;charset=UTF-8"/>
  <f:view>
    <af:document id="d1" title="About">
      <af:form id="f1">
        <af:pageTemplate value="#{bindings.pageTemplateBinding.templateModel}"
                         id="pt1">
          <f:facet name="content">
            <h:outputText id="outText" value="JournalDev is a Technical Site"/>
          </f:facet>
        </af:pageTemplate>
      </af:form>
    </af:document>
  </f:view>
</jsp:root>
Here’s detailed explanation for the code listed above and the complementary steps that you still need to build up your page every time you want that:
  • JSPX is a legal format that can be used for writing your JSPs pages. It’s likely similar for normal JSP with one different, it’s used XML structure.
  • Before using any Tag-library, it should be imported within the jsp:root Tag. Standard HTML and core of JSF are imported in addition to ADF faces.
  • Oracle Webcenter Portal Framework is an ADF Web Application with Portal-features as so, you may find f:view component. This component is used intensively when you consider JSF 1.2 implementation.
  • Document component is used mainly as a replacement for creating all HTML standards element like (html, body, head).
  • The af:pageTemplate is used for referring your fabricated Template. Your bindings variable will refer the binding component for this page. This variable is created automatically once you get this page added into your pages.xml page hierarchy definition. Figure below shows you Page Hierarchy – Editor View.
Page Hierarchy - Editor View
  • By clicking in the green plus on the Page Hierarchy – editor view, you’ll be able of adding new page into your pages. You have the ability to choose which parent this page will refer by selecting the parent page from the pages listed in the Hierarchy before getting plus action clicked.
Page Hierarchy - Open Page Dialog
You may be able of adding the pages into that defined Page Hierarchy by dragging those pages created into Page Hierarchy’s panel but make sure your pages are defined under oracle/webcenter/portalapp.
  • Open pages folder and choose your about.jspx file. And you may notice afterwards existence of new about page under Root and aboutPageDef.xml binding file.
Page Hierarchy - Add About Into Page Hierarchy
  • Save all, and configure your aboutPageDef binding through clicking on it and adding that pageTemplateBinding variable which will refer the PreferenceBean default template method.
About Page Definition - Edit Bindings
  • Click on green plus shown above.
About Page Definition - Edit Bindings - Add Generic Binding
  • Click Okay and name the variable as pagTemplateBinding and click Okay once again.
About Page Definition - Edit Bindings - Variable Created
  • Edit created variable by clicking on pencil icon after the variable is selected.
About Page Definition - Created Variable - Edit Properties Dialog
  • Edit variable common properties like below:
About Page Definition - Created Variable - Edit Common Properties
  • Associate this variable with PreferenceBean default page Template method like below:
About Page Definition - Created Variable - Associate Variable With Expression Language Referring PreferenceBean Default Page Template
  • If you print out the default template this variable references, you’ll definitely see that template located under pagetemplates folder pageTemplate_globe.jspx. Later we will discuss the page template concept, but let’s now consider the template as a reference-based page that’s referenced by the pages to formulate their contents.
The default page template includes navigation UI component which will reacting according for the security policies defined for every page links.
  • Click save all icon at the menu bar and do the same thing with help and info with one and only one difference and it’s info page will be added under home page inside the page hierarchy. The final view of our page would take this form below:
Newly Added Pages
  • For each new level you create in the page hierarchy, a pagehierarchy/pages/*pages file is created. Star is an indicator (reference) for the parent page. These files created (homePages.xml) contain a references for pages in that level.
    homePages.xml
    
    <?xml version="1.0" encoding="windows-1252" ?>
    <pagesDef xmlns="http://xmlns.oracle.com/webcenter/page"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://xmlns.oracle.com/webcenter/page/pagesDef.xsd"
              parent="/oracle/webcenter/portalapp/pagehierarchy/pages.xml">
      <pageDef contentMRef="/oracle/webcenter/portalapp/pages/info.jspx"
               hidden="false" shared="false" hasSubPages="false" id="info"
               overridePolicy="true"/>
    </pagesDef>
    
  • The overall structure view of your site now would look like below:
Running JournalDev PortalRunning JournalDev Portal - About PageRunning JournalDev Portal - Help PageRunning JournalDev Portal - Info Page
  • You may noticed that all pages you navigated have considered the same template and that is because you’re specifying the same page template using the binding variable you’ve worked on before.
But this is not the only facility that the page hierarchy provides, it also provides us so important feature relevant for security policy propagation and inheritance. That is, the parent page is propagated its security policies into its sub pages and the sub pages may consider this propagation or may not by overriding it.
Let’s examine that by providing the following security and see how can we apply that:
  • Home page should be seen by all of anonymous, authenticated and administrator visitors.
  • About page should be seen by all of authenticated visitors only.
  • Help page should be seen by all of anonymous, authenticated and administrator visitors.
  • Info page should be seen by all of authenticated visitors only.
Let’s see how can we achieve that through figuring out the below screen shots:
  • Root parent is an imaginary node and it’s configured like below:
Page Hierarchy - Security Policy - Root Node Security Policies
  • Home page won’t override any of those security policies. So, it will remain the same. This security policy will allows anonymous, authenticated and administrator roles seeing this page.
  • Info page will override these security policies inherit from Root and Home pages. This override will look like below:
Page Hierarchy - Security Policy - Override Info Security Policies
  • About page will also override these propagated security policies by Root and home to be like below:
Page Hierarchy - Security Policy - Override About Security Policies
Inheritance of security policies will enforce all sub pages to consider the propagated policies that the parent defines. In contrast, security policies delegation will allow the sub pages to override the parent’s security and the defined polices will be propagated to all child pages that are inheriting security of that sub page.
  • The navigation UI component will be affected by defined security policies. So, Oracle Webcenter Portal Framework Application will let us see the page link that we’re permitted to see.
Propagated Security Policies And Delegated Ones - Home And Help Are Seen By Anonymous Visitors
  • As you may noticed above, Info sub menu isn’t shown also. Now, log on into your system by using your weblogic administrator user.
Propagated Security Policies And Delegated Ones - All Pages Are Seen By Authenticated Users
  • As you may noticed above, all menus are seen now, cause we’re already logged in into the system.

Summary

Oracle Webcenter Portal Framework Application is an ADF Web Application with Portal-Features. One of these features is Page Hierarchy which is used for covering the overall structure of your Portal in addition to apply proper security policies either by propagation or by delegation. This series will complete discussing the all features of Oracle Webcenter Portal, so contribute us by commenting below and bear with us for next coming ones.