Oracle Portal Development Kit
PDK Services for Java Release Notes


 

System Requirements

Samples

What's New

Known Issues

Installation

Migrating your JPDK

 

SYSTEM REQUIREMENTS

The following are the recommended and minimum requirements to use and install the PDK Services for Java version 3.0.9.8.4.

Portal Version

3.0.6.3.3, 3.0.6.6.5, 3.0.7.6.2, 3.0.8.9.8, 3.0.9, 9.0.2

Browsers

Netscape 4.0.8 and above, 
Microsoft Internet Explorer 4.0.1 with Service Pack 1 and above

Note:  You may encounter JavaScript errors when using a browser older than what is listed above.

SAMPLES

The JPDK samples illustrate how to develop portlets using the JPDK. Portlet output may be rendered by generating HTML within Java methods, using Java servlets, Java Server Pages (JSPs) or static HTML pages in any combination. The following is a list of sample portlets included in this version of the JPDK.

WHAT'S NEW

Release 3.0.9.8.5A

Release 3.0.9.8.5

Release 3.0.9.8.4A

Release 3.0.9.8.4

Release 3.0.9.0.7

Release 3.0.9.0.6

Release 3.0.9.0.5

You can specify a container renderer at the provider or portlet level in your provider definition file (provider.xml) using the following syntax:

<containerRenderer class="<container renderer class>" />

If you specify a container renderer at the provider level, it will be used for all portlets belonging to that provider unless the portlet overrides the setting with it's own container renderer. If you do not specify a container renderer, the DefaultContainerRenderer will be used.

For backwards compatibility, the methods in PortletRendererUtil that used to be used for rendering the portlet container now use the new container renderers. These methods first determine which container renderer should be used based on the provider/portlet settings so you can leverage this new functionality without changing your existing code.

sample code using PortletRendererUtil.constructDetailLink():

PortletRenderRequest prr;
...
// initialize parameters for link
NameValuePair[] params = new NameValuePair[2];
params[0] = new NameValuePair("detailMode", "1");
params[1] = new NameValuePair("detailContext", "context information"); // call API to construct the link
String link = PortletRendererUtil.constructDetailLink(prr,params,true,false); // display link in portlet
...

The last 2 arguments of the method allow you to specify whether the parameters should be encoded and whether they should replace any parameters of the same name that exist in the base link.

<portlet>
    ....
    <minEditAuthLevel>STRONG</minEditAuthLevel>
    ....
</portlet>

Weak authentication is a feature that is planned for release in Oracle Portal 9.0.2

Release 3.0.9.0.4

Release 3.0.9.0.3

The utility is designed to run on JVM versions 1.1.8 and higher and is invoked in the following manner:-

java -DConnectionManager.config=/path/to/connectionManager.xml oracle.portal.provider.tools.v1.FileToDatabase [mandatory arguments] [optional arguments]

where:-

Mandatory Arguments

/path/to/provider.xml

Location of the XML Provider Definition of the provider whose portlet's customizations are to be migrated.

 

/path/to/rootDir

Root directory holding the customizations. PDK-Java defaults this to the provider_root.

 

connectionName

The name of the connection to be used. This is specified in connectionManager.xml

 

 

 

Optional Arguments

-t tableName

Name of the table into which customizations will be inserted. Default: jpdk_preference_store2

 

-p providerID

ID of the provider whose portlet's customizations are to be migrated. Default: all directories below the rootDir whose names may be parsed as longs are searched for customization files.

 

-o portletID

ID of the portlet whose customizations are to be migrated. Default: all portlets who are declared to use FilePersonalizationManager or DefaultPortletPersonalizationManager by the XML Provider Definition supplied. This optional argument may be specified without a providerID argument.

 

-c transformClassName

The name of a loadable class which implements oracle.portal.utils.v1.Transform . If this argument is supplied, an instance of the class will be used to transform data objects before they are written to the database by a call to the public Object transform(Object) method. It is thus possible, for example, to migrate data from the deprecated oracle.portal.provider.v1.http.BaseCustomization class to the more robust oracle.portal.provider.v1.NameValuePersonalizationObject class. Note that the user of this utility must supply the logic to migrate the actual data by providing an implementation of the public Object transform(Object) method.

 

-l logFile

File to which log messages are to be written. Default: the console.

Run this utility with the same classpath used to start up the JServ JVM. A database table equivalent to that created by the /jpdk/providers/dbPersonalization2/jpdk_preference_store2.sql script must exist in the target database before this utility is invoked.

Release 3.0.9.0.2

Release 3.0.9.0.1

If you are using Oracle9iAS Portal release 3.0.8 you should download the patch for bug 1832878. This patch is for the portal, not the JPDK.

If you are using Oracle9iAS Portal release 3.0.9 you should download the patch for bug 1810741 which includes this release of the JPDK and patches for the portal and database and mid-tier.

Release 3.0.9.0.0

NOTE: if you are using JSPs to render your portlet content you must explicitly specify the character set of your content otherwise your JSP engine will default the character set to ISO8859-1 (Western European ASCII). This is a feature of the JSP 1.0 and 1.1specification. If you are displaying portal usernames in your content you should either hard-code the character set to "utf-8" or get the character set using PortletRenderRequest.getCharacterSet(). This is necessary because Portal release 3.0.9 allows usernames to contain multibyte characters & usernames may not be displayed correctly if you do not specify the character set.

You do not need to use these entity definitions. They were simply added as a convenience. If you find you have other sets of repeating information, you can add your own.

public void init(ParameterMap parameters)

ParameterMap is also an interface so you can use the Initializable interface anywhere you need to be able to initialize an object with a variable (and unknown) number of arguments.

If your provider implements this interface, HttpProvider will call this method instead of the Provider.init() methods. DefaultProvider now implements the Initializable interface and the default implementation calls the old Provider.init() method so you will not see any change in behaviour unless you override the method above. DefaultProvider also exposes the ParameterMap it receives during initialization via the getProviderContext() method. This means the parameters are easily accessible throughout the framework. For example, from within a renderer, call the following:

PortletRenderRequest.getProvider().getProviderContext();

Release 1.4

See <charSet> tag definition in the provider.xml for specification of file character set

See <parameter> tag definition in the provider.xml for details

See <showPage> tag definition in the provider.xml for details

You can use the DefaultSecurityManager to specify the minimum authentication level necessary to view a particular portlet. If the user's current authentication level is not high enough, they will be denied access.

This class can be used with older portal versions (3.0.8 and earlier) but the only effective settings will be 'public' and 'strong' since the concept of weak authentication does not exist in these releases.

If you currently use DefaultProvider, or have extended DefaultProvider, your registry will be automatically upgraded whenever your provider is loaded. You can permanently upgrade (and save the cost of real-time conversion) using the following

java.exe - classpath <jar_path>/xmlparserv2.jar
   oracle.xml.parser.v2.oraxsl -w -l provider.xml -s    <pdk_home>/pdk/jpdk/src/oracle/portal/provider/v1/http/resource/upgrade_v1_to_v2.xsl -r upg

where <jar_path> is the location of xmlparserv2.jar
            <pdk_home> is the location where you unzipped your PDK

This command will upgrade your registry file and create a file called provider.xml.upg in the current directory

For example: servlet.myprovider.initArgs=provider_definition=myprovider.xml

To enable auto-reload of your provider registry, add auto_reload=true to the initArgs of your provider servlet. For example

servlet.myProvider.initArgs=provider_root=c:/provider/root/,sessiontimeout=1800000,auto_reload=true

NOTE: Reloading the provider registry only reloads the provider and portlet definitions from the registry. It will not force Java classes or JSPs that have already been loaded into memory to be reloaded.

Release 1.3

                 <provider ....>
        <portlet ....>
        .....
              <portletRenderer class=oracle.portal.provider.v1.http.ServletPageRenderer>
                       <showServlet>my.servlet.class</showServlet>
                       .....
              </portletRenderer>
        </portlet>
</provider>

Since ServletPageRenderer also supports the same tags as PageRenderer, it is possible to include 2 sets of information for the same show mode. For example, a servlet and a jsp page. If multiple sets of tags for the same show mode are encountered, the servlet will be used.

ServletPageRenderer will automatically load your servlet class when it is needed so you do not need to register the servlet classes with your servlet engine. Registration is not necessary because the servlet is not accessed via a virtual path from the listener. Instead it is invoked programmatically from within the JPDK.

<personalizationManager ....>
        .....
        <useHashing>true</useHashing>
</personalizationManager>

To expose this information, a new initSession() method has been added to the Provider interface.

<provider ....>
        <useOldStyleHeaders>true</useOldStyleHeaders>
        <portlet ....>
        .....
        </portlet>
</provider>

If you do not use DefaultProvider.java (or a subclass of DefaultProvider) you should add a method to your provider as follows:

public boolean getUseOldStyleHeaders() {
    return true;
}

Release 1.2

Release 1.1 

Any portlet that relies on the BaseCustomization object will need to delete the existing user customization data before upgrading/rerunning. That is this change is incompatible with the existing format. The new version is unable to read customization data generated by the previous version. 

Consult the JavaDoc to determine the particular function. Note however, the portal doesn't current support the new multi-language scheme. It neither passes the Portal's default language nor ever indicates you are in "translate" mode. 

Known Issues

Installation

Migrating YOUR JPDK

Multiple JPDK installs is not available for one Oracle HTTP Server at this time.  Because of this, you will need to migrate your JPDK to the current version.  Migrating your JPDK is fairly quick and simple.  Below are the steps to migrate the JPDK

You have now successfully migrated to the current JPDK version.


Revision History: