How to get a view on packages larger than 30K in Oracle Portal

For a project with Oracle Portal, I had to do some lookups in packages and procedures on the database to get some information about the project.   Since I wasn’t working full-time for this project I had no access to the DB, except via the portal itself.

Several times I had the problem that the client wanted a quick answer for his question, but therefor I needed to dig into the code that was developed in the past. The problem was that the size for editing/viewing a package or procedure was limited to 30K and since there where several packages bigger than 30K, I couldn’t give them a quick answer.

If you only want to read the packages(not edit), there is a very easy portal solution for this problem:
Continue reading

Oracle Webcenter technical workshop (part 2)

As promised here is the continuation of the technical workshop we have followed.
In this text I will talk about how we created a little appliciation in Webcenter with some build in features of webcenter. In most part of the exercise we used ADF to build this, but we have also build in some out-of-the-box portlets of webcenter such as the Omniportlet and the Rich Text Editor Portlet but this will be discussed later.

I will go into detail on the real webcenter development and I will not go into detail about the not really webcenter related issues(this is not a step by step guide)

If you want to know more about this, you will have to read further

First thing we had to do of course is to open Jdevelopper, since this is the (free) tool which is used to create the webcenter portlets – portals. The version we need for using Webcenter is jdev (or later).

Then we had to create a new application. If you want to create a porlet application you have to select Webcenter Application(Portlet, content Repository,JSF) as application template.
This will not only create a new application for you, but it will already contain some structure to build your pages – portlets in. The structure contains 3 ‘directories’: Model, ViewController and Portlets. As we have already mentioned webcenter uses the MVC ADF framework. The next thing was creating a portlet. We had to right click the portlets ‘directorie’ in the application navigator and then choose the option below Web Tier -> Portlets which was ‘Standards based Java Portlets(JSR-168) the other option is the Oracle PDK-Java Portlet (this is based on the Oracle portal API’s).

Next thing we had to do in the creation wizard was to select the web application version. We had the choice between j2ee 1.3 and J2ee 1.4

We also had to give in some names, titles, keywords,… and we had to make a choice which portlet modes we wanted to use(possibilities are: help, about, config, preview, print, view, edit and edit_defaults), for this exercise we only choose view, edit and edit_defaults. For each of these 3 modes a different jsp will be build.

In this wizard you will also have to create the parameters if you want to use some in your portlet.

Once finished, our first portlet was created. But before deploying this we had to create a link to an application server and a deployment file.

In this version of jdev there is a preconfigured OC4J for webcenter. So we used this container to deploy our application on, we didn’t had to install the webcenter suite for testing our portlets. You first have to start this container, this can be done by clicking the green light on the top right of the menu in Jdev.

Hint, when creating a connection you should use 22667 as RMI port, this is the default RMI port for the webcenter container.

Once your portlet is deployed into your OC4J you can find the WSDL URL by using http://localhost:6688//portlets/wsrp2?WSDL.
We have now created a portlet but we don’t have a page to publish it on. Therefor we had to rightclick the Viewcontroller ‘directorie’ in the Application navigator and choose New. Once again you will have to choose a technology, in this case we had to choose JSF JSP(Web Tier -> JSP) .
A wizard opens and we choose jspx (xml version of a jsp page). In the wizard we selected the needed libraries(adf faces components,adf faces html,customizable components, jsf core, jsf html) since we were going to use some parts of all these libraries we selected them all.

So now we have a portlet and a page, but how do we have to include this portlet into the page? Well we have to register the portlet into the oracle Webcenter framework. Go to the Application Navigator and right click the Viewcontroller and click new. Select WSRP Producer Registration(Web-Tier -> portlets). In the next wizard you will have to give in the WSDL URL(see above). Once you have selected all the other attributes you click finish and your portlets is registered.

Now you just have to drag and drop the portlet into the jspx file. Therefor you have to open your jspx file and then select your producer in the Component Palet and drag and drop your portlet into the application.

Conclusion: I believe that there is a good future for this product it has lots of options and lots of potential, but you have to get used to all the possibilities of it and where you have to select what… But I believe that you really can create some nice working portal pages after a few days. If you want to learn more about ADF or webcenter there is only one option, start using it! I really got interested in it maybe you do too…

Oracle Webcenter technical workshop (part 1)

On the 17th of april we where invited to join a technical workshop about Oracle Webcenter for partners at Oracle DeMeern near to Utrecht (Holland).

We wanted to know what Webcenter really could do for us, and what the capabilities are, and of course what the next generation of Webcenter would look like.

Well, we came back full of enthusiasm and the will to explore and look deeper in the webcenter technology.

Read further …

What have we seen during that day?
First of all we got an introduction about all the different layers on which the webcenter framework was build.
And we also saw that webcenter uses several known standards like wsrp, jsr168, jsr170, web 2.0 …

They explained that the Webcenter framework uses Oracle Metadata Management (MDS). This is an XML based repository that stores all kinds of application metadata. In the version we use now this is file based, but in future versions the user will have the choice between file and database based storage.
Webcenter is the first tool in the fusion stack that uses MDS but in the next releases this will also be used for other tools.

In Webcenter it is also possible to use existing portlets/pages/… Therefore you will have to use the ‘Federated Portal Adapter’.
The other way round is also possible, by using the ‘JSF Portlet Bridge’. This will make it possible to publish any portlet created in webcenter to a portal (e.g. oracle portal) that supports jsr168.

The main subject of the day was the JSF part. Oracle uses their ADF framework for creating these kinds of applications.
Not being a real java expert, I really enjoyed working with this tool and the fastness of creating little applications with it.
In the webcenter there are already a few build in portlet applications like the rich text editor, omniportlet which we already knew from the oracle portal.

We also saw how the future of webcenter possible would look like.
First of all the UI of the portlets will look much flashier with more use of AJAX, dhtml,…
It will also be possible to change pages on the fly and there will be more drag and drop functionality.

Last but not least, we also discussed the positioning of the product, particularly against the oracle portal. This was a tricky one, but I kind of know now how I have to position it now. If you want to use open standards and you don’t mind to create applications (almost) from scratch (apart from the already build in applications like rte, omniportlet,…) this is a very fast and good development tool!

One of the next days we will handle the practical part of this day, to give you a glimpse on how webcenter works.

To be continued…

Finally Oracle has announced their new hit on Oracle OpenWorld: Oracle WebCenter

For me this means I can finally talk about my sneak preview-experiences at Oracle HQ.

In August I went to San Francisco for 1 week expert testing of Oracle Workplace Suite, now formally announced by Oracle … ‘WEBCENTER’

The goal of this week’s expert testing was to get acquainted with Workplace Suite/WebCenter and most of all, test the product and give feedback to the product managers of Oracle.
We had to give feedback about the overall usability and user friendliness of the tool, which features were missing, enhancements could be made and most of all which bugs we ran into.

The product :

Workplace Suite/WebCenter is an extension to JDeveloper as well as the Application Server. The developer has the possibility to integrate portal- and content db-functionality in their existing JavaServer Faces application, and combine the strength of portal, contendb and adf in one web application.

An example of an application using the Workplace Services/Suite:

Day 1, Introduction/Overview :
Everybody gives a short introduction of themselves and then it’s time to find out what Workplace Suite has got to offer.

Sue Vickers and Peter Moskovits, 2 product managers, give us an overview of the portlet technology in Workplace Suite. In short the developer can add portlet-like capabilities to his JavaServer Faces application.

A new Application Template was defined that bundles all the necessary libraries you will need to add portal, contentdb and ADF functionality to your application.

Using wizards you can define your own custom portlets or register existing portlet providers, described in a wsdl file, which have their own defined portlets.

The portlets available through the provider are shown in the component palette, where the developer can drag-and-drop the different portlets on the JSF-page.

2 new components where added to give the end-user the possibility to redesign and redefine the look-and-feel of the portal-like jsf application at runtime.

The end-user can hide, show, maximize, minimize and re-locate the portlets, using the panelCustomizable- or showDetailFrame-component.

Portal developers will appreciate the out-of-the-box portlets provided such as the webclipping portlet, omniportlet and rich text portlet.
Another feature that will come in handy is ‘parameter wiring’ of portlets, the ability to have a Driving (master) portlet and a Driven portlet (detail).

For example: a search portlet where the user searches for a specific file on his content repository – the Driving/master portlet – and a detail-portlet showing the result of the search-operation, which can be an omni-portlet, web-service, …

As you’ve already noticed in the previous example, the developer can create a content-rich applica tions using the content db-features provided in Workplace Suite.
Through the usage of datacontrols, if you’ve developed in ADF you’re already familiar with this concept, you can integrate content db functionality.
You have the possibility to perform searches or browse the content of different repositories like file systems, the oracle portal repository or 3d party repositories using a JCR adapter (the Java API for accessing Content Repositories).

Day 2, Security & Deployment :

Today we will get an introduction on how deployment and security has to be defined for our workplace suite application works.

For the security-aspect Oracle has chosen for JAAS based security, which gives us the possibility to change policies at runtime and to define security on each level (attribute-, method- and object-level).
Using an out-of-the-box wizard you can choose to use JAAS for your application, from this moment on you will need to set privileges on each object in your application.
After enabling JAAS-security, you can add the different users and user-groups that will be using the application in your project preferences in Jdeveloper, under the tag authentication (see JAZN). For each user- or usergroup you will define the role, their privileges for your project/application.

Now our application is secured, but what about deployment?
To deploy our Workplace Suite Application we will use the lifecycle tool that consists of a multi-phase process to transfer the application and application metadata.
First a deployment profile is created that defines the kind of application we want to deploy, in our case a Workplace Suite application.
This deployment-profile will hold the generic-ear file that defines standard J2EE deployment. The pre-deployment tool will use this ear file to add portal- and content-db functionality using the MetaData Store. The MDS (MetaData Store) holds the application metadata concerning portal,ADF and contentdb.
When the pre-deployment tool has finished the targeted-ear file is created and this ear-file is deployed to Oracle Container For Java (OC4J).
When changes are made to portlet providers after deployment, these changes can be deployed to the production environment (e.g. new portlets are added to the portlet providers).
Without having to re-deploy the whole application you can import your customizations in the existing production environment.
Security settings are deployed by the JAZN Migration tool, which will describe the settings in an ldif-file and write them to your LDAP-server.
Using the mode of migration you can define which settings need to be deployed, the ‘Realm Mode’ only migrates users & roles, ‘Policy Mode’ migrates grantees and associated permissions, ‘All Mode’ migrates all security settings.

Day 3, 4 and 5:
During these 3 days we had the opportunity to test these features and to work out our own application which could be 1 of 3 cases provided by Oracle or your own test cases.
An outline was given of all the functionalities that need thorough testing … the time was come to get dirty.
I chose to create an application that used all of the functionalities we had seen and I wanted to deploy this application using the lifecycle tool.
After adding different portlets, parameter wiring, content db and ADF components to my application, it was time to deploy this to my standalone OC4J container.
Day 5 was d-day for everyone, for us and for the product managers, because today everyone needed to give feedback and if possible a project show-off.
My goal for today was to deploy my application to the stand-alone container. Apparantly, I was the only developer that wanted to test this functionality and got full assistance and back-up of the Oracle Workplace Suite/WebCenter development-team.

Between the lines … the manager of the guys of the development team that were supporting me wasn’t to happy about his two most important developers assisting me in the deployment process, but I was ;o)

In the afternoon all the product managers came to listen to our concerns, feedback and they took a look at the applications everyone built.
During this feedback-time I was still working on the deployment of my application with the development-team by my side … the deadline was approaching.
After a lot of searching, cursing, searching and cursing we finally managed to deploy the application ‘just in time’, and not only I, but the development- and the oracle-team were waiting on this moment!
We could conclude with a very reassuring and fulfilled feeling… deployment works!
I almost forgot to mention … my laptop holds the only working version of the container to deploy workplace suite applications to … you can build a workplace application, but you can’t deploy it ;o) Hopefully, the deployment features in the production release will be improved!