2. Customizations/ Personalization
Types of Customizations
MetaData Services in Oracle ADF
Using MDS for Customization
Implementing Customizations in ADF App
Deep dive into how MDS is used in ADF
Demo on Personalization
Questions
3. Must Be thinking !
Oracle ADF and Webcenter Consultant.
Oracle Certified ADF & Webcenter Implementation specialist.
Consultant, Blogger, Speaker and open networker.
Passionate about Oracle Technologies.
Have been working in Oracle/Java products from 8.5 years.
Currently working with Oracle Consulting.
Blog – http://rohanwalia.blogspot.in/
Twitter - @rohanwalia17
4. Nothing is as Certain as “CHANGE”
Good Applications is one with Longevity.
Need to protect the investment in Application Development.
Need to react to change should be part of App Design.
It should not come as a shock after App Development.
6. Personalization or User Customization
Every end user is Unique.
Different preference for how they like UI to be rendered.
Users like to make themselves at home within the
application.
7. Visual and declarative development using Best Practices
ADF uses XML where ever possible, to configure and drive these
technologies
Provides powerful MDS Framework for Customizations/
Personalization
This use of metadata is a key component of the overall ADF
architecture
XML enables OOTB Customization as these are done using XML and
not code
Code does not needs to be compiled to apply Customizations
Provides configurations to enable and implement customizations
without too much learning curve
8. JSF View
Controller
Model
Business
Services
Data Services
Desktop Browser-Based
Office
ADF
Swing
MDS in Oracle ADF
ADF Faces
JSF ADF Controller
Mobile
ADF Binding
Java EJB ADFBC BAM Web Services BPEL BI Portlets
Metadata Services (MDS)
Mobile
Database Web Services Legacy Systems Apps Unlimited
9. Oracle Metadata Services (MDS) is the personalization and
customization engine within Oracle Fusion Middleware that manages
all of this XML metadata of behalf of components such as JDeveloper
and ADF.
Metadata is used by the following components
ADF Faces rich client Java Server Faces components
ADF Faces Data Visualization Tools (DVT)
ADF Task Flow
ADF Binding layer
ADF Business Components
Oracle WebCenter
10. Dynamic Structure and Property changes
Changes are on Metadata of Views, bindings and fragments
Addition and removal of properties on the components of
Page or Fragments(JSFF)
Application consist of one Base Application
One or Many Customization Layers holding modifications are
applied at runtime
11.
12. Customization layer is defined by set of metadata documents
These are stored in metadata store on file system or MDS
database repository
Customization layer Object determines when to apply these
changes
Customization layer object is simple java class
Customization layer determines specific conditions under
which customization needs to be applied to application on
run
14. Plain Old Java Object
Determines when to apply customization to base document.
Objects for Common scenarios is provided by ADF Framework.
Customization Layer Object needs to be registered in the application.
E.g. : UserCC , SiteCC , ADFRoleCC etc.
Developer can create Custom Object by extending
oracle.mds.cust.CustomizationClass
Needs to override getCacheHint() , getName() and getValue() methods.
Value returned by getValue() method determines when to apply
customization
15.
16.
17. ADF Faces components are added in adf-config.xml for which persistence is required.
18. Context Param CHANGE_PERSISTENCE is added to Web.xml
Has value FilteredPersistenceChangeManager
MDSDocumentChangeManager gets Configured in adf-config.xml
19. Component Changes occur in response of User – UI Interaction.
They consist of change of properties/attributes of components.
Implicit component changes are performed by the ADF Faces component
renderers.
Implicit changes are defined in adf-config.xml components and tags.
Explicit changes are initiated by developer using ADF ChangeManager API.
ChangeManager can accessed through FacesContext to perform explicit
changes.
FilteredPersistenceChangeManager
◦ Gets into action for every UI component change request.
◦ Verifies that no restrictions have been applied by the developers to individual component instances.
◦ Verifies whether restrictions are applied using persist and dontPersist attributes on Components.
MDSDocumentChangeManager
◦ After all the validations(as above) changes are passed to MDS Document Change Manager.
◦ Is referenced by FilteredPersistenceChangeManager after validations in defined in adf-config.xml
◦ Updates the MDS metadata document associated with a page.
20.
21. Allow developers to pre define application settings for individual or group of
users.
Seeded Customizations are pre defined during development.
They are dynamically applied to the application at runtime.
22. Changes are done for Customization Values
in Customization Developer Mode