Posts

Showing posts from 2018

WCP12c: Improve performance of your Search Content Queries

Image
Hi, A year ago I spoke in NL OUG 2017 on how to improve you Oracle WebCenter Portal 12c performance. https://es.slideshare.net/DanielMerchnGarca/nloug-2017-oracle-webcenter-portal-12c-performance Recently, I had a customer who was running a very well tunned Oracle WebCenter Portal 12c platform, but it has been growing a lot during the latest years. I have realised that queries to Oracle WebCenter Content were performing very bad, so I checked the typical: Check the fragmentation of the current OTS index by using the PL/SQL command. It shown a perfect 1% and the PL/SQL job was scheduled for being executed each 3 days. WebCenter Content configuration and AutoSuggestIndexer. All was good... JVM Monitoring and CPU / Memory resources. All good as well. So... what was happening then?. Enabling requestaudit trace in WebCenter Content it was showing response times very high. The query thrown from Oracle WebCenter Portal was giving very bad answer time >requestaudit/6    

Usage of CDI in Oracle ADF - Part III - CDI Events

Image
Hi, I will bring some serie of posts about CDI usage within Oracle ADF: Usage of CDI in Oracle ADF - Part I - Introduction. Usage of CDI in Oracle ADF - Part II - Enabling and using CDI. Usage of CDI in Oracle ADF - Part III - CDI Events In this post I want to introduce an example of the usage of CDI Events (Synchronous and Asynchronous) to enhance your Oracle ADF Skills. The example contains the CDI Events Synchronous and Asynchronous implementation. However, as commented in previous posts , WebLogic 12.2.1.3 is shipped with CDI 1.0 which is not compatible with Asynchronous Events introduced in 2.0 ). https://github.com/DanielMerchan/adf The application is based on a Pokemon Battle where attacking takes a period of time before it completes the attack. Each Pokemon Attack is an Event which is processed Synchronous or Asynchronus depending on the attack selected. Which are the important parts in the example? In the example you can find: PokemonAttack.java : T

Usage of CDI in Oracle ADF - Part II - Enabling and using CDI

Image
Hi, I will bring some serie of posts about CDI usage within Oracle ADF: Usage of CDI in Oracle ADF - Part I - Introduction. Usage of CDI in Oracle ADF - Part II - Enabling and using CDI. Usage of CDI in Oracle ADF - Part III - CDI Events - Synchronous Previously I have introduced Usage of CDI in Oracle ADF - Part I - Introduction. what are CDI Beans in Java EE 8 and why are them so important in Java Web Development. Now, we are going to setup our ADF Project to be able to use CDI Beans. How do I enable CDI in an ADF Application? Important Update: Do not include CDI 2.0 or other Java Enterprise dependencies of higher versions that are shipped with Oracle WebLogic Server. E.g.: Oracle WebLogic 12.2.1.3 is CDI 1.1. compatible If you are using Maven or the classic JDeveloper Library manageemnt then add the Context and Dependency Injection library to your pom.xml Also, you can add manually the CDI dependency as following: com.oracle.adf.library

Usage of CDI in Oracle ADF - Part I - Introduction

Hi, I will bring some serie of posts about CDI usage within Oracle ADF: Usage of CDI in Oracle ADF - Part I - Introduction. Usage of CDI in Oracle ADF - Part II - Enabling and using CDI. Usage of CDI in Oracle ADF - Part III - CDI Events - Synchronous In this series of post I will bring a common topic around development in Oracle ADF 12cR2 for Java EE / Jakarta EE developers who has been using also JSF 2.3. Some history on JSF and Managed Beans Looooong time ago... JSF as other frameworks introduced a way on how the objects are created, injected and used without the need of making explicit new in our code for memory optimisation etc... In JSF, JSF Managed Beans are defined in the faces-config.xml and managed by the JSF Framework. Remember that Annotations for JSF Managed Beans were introduced in JSF 2.0 allowing us to declare the JSF Managed Beans within the class itself instead of registering in a faces config file. Note: The JSF annotations are located under javax.fa

JSF WebSocket with OmniFaces in Oracle ADF

Image
Hi, In previous post I shared another example of usage of WebSocket technology within Oracle ADF 12cR2. ADF 12cR2: Using WebSockets for warning Task Flow Concurrency  As part of my presentation in NLOUG 2018 I compared JSF 2.3 declarative way of doing WebSocket vs Oracle ADF (JSF 2.2) way. I started being using OmniFaces as a very good Faces utility for my JSF projects and seen <o:socket...> which functionality is " the same " as <f:websocket...> for the implementation of WebScoket in JSF in a declarative way. By using OmniFaces you can extend the possibilities of Oracle ADF 12cR2 with some useful components and libraries. The example can be found in my GitHub of ADF Demos: https://github.com/DanielMerchan/adf In this simple example I made use of the <o:socket...> for WebSocket implementation. But, you can think in more complex scenarios where: You want to communicate with a certain set of users You can do Client - Server and viceversa

NLOUG 2017 and 2018: My Presentations

Hi all, Just in case you missed my NLOUG 2017 & 2018 sessions, here I share the links to the presentations. Oracle WebCenter Portal 12c Performance considerations https://es.slideshare.net/DanielMerchnGarca/nloug-2017-oracle-webcenter-portal-12c-performance Oracle ADF and JSF now in a Jakarta EE world! https://es.slideshare.net/DanielMerchnGarca/nloug-2018-future-of-jsf-and-adf Or download them from the NLOUG website! NLOUG Publications: https://www.nloug.nl/publicaties.aspx  Never forget to keep learning, improving and sharing the knowledge around the world.

PrimeFaces UI Components in Oracle ADF

Image
Hi, Using some PrimeFaces UI components in combination with ADF Faces UI Components? This weekend I have been curious about if I can use the PrimeFaces UI components such as p:textEditor or p:growl within Oracle ADF without crashing ADF Faces and viceversa. At the beginning, I tried to use p:growl is very similar to af:message as it uses the FacesMessage framework underneath. Obviously, as running within ADF Faces the messages were displayed with the ADF Faces Message style. However, the PrimeFaces UI components like the ADF UI Faces Components has its own API (Java + JavaScript) which makes easier to invoke them!. In the example in my GitHub Repository you will find a simple ADF View Controller Project which makes use of Prime Faces with Oracle ADF. https://github.com/DanielMerchan/adf Remember that this is not officialy supported by Oracle and it can produce issues as both Faces implementation uses JavaScript on behind which can conflict. In addition, this is jus

Oracle JET: Composite Components and 5.2.0 migration to 6.0.0

Hi, Recently I have migrated my Oracle JET Application from 5.2.0 to 6.0.0 following the steps mentioned in https://docs.oracle.com/en/middleware/jet/6/develop/oracle-jet-v6.0.0-tooling-migration.html They look pretty straight forward, however, I have noticed that my JET Composite Components where not loading when running my JET Application. Why? In 5.2.0 you can refer the loader.js of the Composite Component as following loader.json in 5.2.0 being used in a ViewModel JS file define(['ojs/ojcore', 'knockout', 'jquery', 'ojs/ojnavigationlist', 'jet-composites/demo-card/loader'], function(oj, ko, $) { function DemoCardViewModel() { var self = this; ); In 6.0.0, the Composite Component path generated when building the JET Application has changed including the version of the Composite Component as part of it. So, now we need to change the reference to the loader.js as following [JETComponentName]/

WCP12c: Embed a Login Task Flow in a Page or Page Template

Image
Recently I saw a question in OTN: Oracle WebCenter Portal on how you can embed a Login into a Page or Page Template. You can find the code in my GitHub repository: https://github.com/DanielMerchan/WebCenterExtensions There are many ways to do this, but in this post I will bring only two: Using Internal API: It uses some available Manage Beans in the Portal Scope for supporting authentication. This API is compatible with OAM / WebLogic Authentication. Using Java EE API: It uses the HttpServletRequest login method to perform WebLogic Authentication. Since 12c, the AutheticationServlet.login of the WebLogic API has been deprecated. It can be uses standard JAAS Authentication. The LoginInternalAPI Task Flow implements the first approach and the LoginJavaAPI Task Flow implements the second approach using a custom backing bean. For testing, you can add the Task Flow to the Portal Resource Catalog and add it to a WebCenter Portal Page. If you want to use it in your Page Templa