By: Rohan Walia Oracle ADF and Webcenter Portal Implementation Specialist 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 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. Personalization - User Customizations Seeded Customization 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. 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/Personalizations. 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. MDS in Oracle ADF Metadata Services (MDS) Desktop ADF Swing Mobile Office Browser-Based JSF Mobile JSF ADF Faces ADF Controller ADF Binding Java EJB ADFBC BAM Web Services View Controller Model BPEL BI Portlets Business Services Data Services Database Web Services Legacy Systems Apps Unlimited 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 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. 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 Metadata Repository File or DB 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 ADF Faces components are added in adf-config.xml for which persistence is required. Context Param CHANGE_PERSISTENCE is added to Web.xml Has value FilteredPersistenceChangeManager MDSDocumentChangeManager gets Configured in adfadf-config.xml 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. 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. Changes are done for Customization Values in Customization Developer Mode Questions ? in.linkedin.com/in/rohanwalia/ er.walia@gmail.com @rohanwalia17 http://rohanwalia.blogspot.in/