Oracle WebCenter Services Sample Portlets - Wiki

Note: The portlets are samples released for test, evaluation, and educational purposes.  They are not supported through formal Oracle Support mechanisms.  We are, however, very interested in receiving your feedback on these portlets.  Please post any suggestions, questions, or issues to the Oracle WebCenter Suite Services discussion forum, and we will respond as quickly as possible. 

Date: July, 2009

Table of Contents

Introduction 

Software Prerequisites

The sample portlets require the following services:

They also require one of the following portlet containers:

They are able to be consumed by the following portals:

If you do not have the above software available, please visit the Oracle WebCenter Suite Home Page to obtain it.

Knowledge Prerequisites

This sample portlet will be deployed and configured on the selected portlet container. It is assumed that the reader is familiar with these processes on the selected container; if not please consult the product-specific documentation.

Technologies used by this sample include Java Portlets (JSR 168), JSP 2.0, JSTL, Web services, CSS, and JavaScript. For more information on these technologies, please refer to the Additional References.

Application Overview

Wikis provide simple and intuitive collaboration, allowing groups and teams to readily exchange ideas. Oracle WebCenter Wiki and Blog Server 10g Release 3 provides a comprehensive wiki platform for use in your Enterprise 2.0 applications. This sample portlet demonstrates the use of many of these capabilities within Oracle's portal solutions.

The wiki sample portlet is designed to allow the user to easily connect to a wiki server in order to view and/or edit pages. Once connected the portlet provides the user with options to navigate, view, create, and edit the wiki pages. All of the state is stored as portlet preferences, allowing the user to maintain their navigation and settings.

Sample Files 

The sample portlet is packaged as a Java Web Archive (WAR) file that contains all of the files necessary to deploy the application. The following list of files may be used as a reference when deploying, configuring, modifying, and otherwise using the sample.

Java Source and Property Files

Directory File Description
/WEB-INF/src/samples/webcenter/portlets/wiki WikiPortlet.java The JSR 168 Portlet source file
/WEB-INF/src/samples/webcenter/portlets/wiki WikiPortlet.properties Properties file for messages and choices
/WEB-INF/src/samples/webcenter/services/wiki BlogType.java Generated from WSDL
/WEB-INF/src/samples/webcenter/services/wiki DomainInfo.java Generated from WSDL
/WEB-INF/src/samples/webcenter/services/wiki PageEditMode.java Generated from WSDL
/WEB-INF/src/samples/webcenter/services/wiki PageInfo.java Generated from WSDL
/WEB-INF/src/samples/webcenter/services/wiki PageType.java Generated from WSDL
/WEB-INF/src/samples/webcenter/services/wiki SearchResult.java Generated from WSDL
/WEB-INF/src/samples/webcenter/services/wiki SearchType.java Generated from WSDL
/WEB-INF/src/samples/webcenter/services/wiki/remote WikiRemoteServiceSoapBindingStub.java Generated from WSDL
/WEB-INF/src/samples/webcenter/services/wiki/remote WikiService.java Generated from WSDL
/WEB-INF/src/samples/webcenter/services/wiki/remote WikiServiceProxy.java Generated from WSDL
/WEB-INF/src/samples/webcenter/services/wiki/remote WikiServiceService.java Generated from WSDL
/WEB-INF/src/samples/webcenter/services/wiki/remote WikiServiceServiceLocator.java Generated from WSDL

Java Archive (JAR) Files

Directory File Description
/WEB-INF/lib axis.jar Apache Axis Web Services
/WEB-INF/lib commons-discovery.jar Apache Commons Discovery
/WEB-INF/lib forums-ws-client.jar Jive Software Web Services Client
/WEB-INF/lib wsdl4j-1.5.1.jar Java APIs for WSDL (JWSDL)
/WEB-INF/lib wss4j.jar Apache WSS4J (WS-Security)
/WEB-INF/lib xmlsec-1.4.1.jar Common classes for XML cryptography

JavaServer Pages (JSP)

Directory File Description
/samples/webcenter/portlets/wiki edit.jsp Edit mode JSP
/samples/webcenter/portlets/wiki help.jsp Help mode JSP
/samples/webcenter/portlets/wiki view.jsp View mode JSP
/samples/webcenter/portlets/wiki/views init.jspx Initializes the JSP and JavaScript variables
/samples/webcenter/portlets/wiki/views main.jspx Renders the main user interface
/samples/webcenter/portlets/wiki/views page.jspx Used for viewing and editing a wiki page
/samples/webcenter/portlets/wiki/views search_results.jspx Used for viewing the search results

Image, JavaScript, and Style Sheet Files

Directory File Description
/samples/webcenter/portlets/wiki/css default.css Default style sheet
/samples/webcenter/portlets/wiki/css plain.css Plain style sheet
/samples/webcenter/portlets/wiki/images configure.png Configure settings icon
/samples/webcenter/portlets/wiki/images delete.png Delete icon
/samples/webcenter/portlets/wiki/images edit.png Edit icon
/samples/webcenter/portlets/wiki/images help.png Help icon
/samples/webcenter/portlets/wiki/images minus.png Collapse icon
/samples/webcenter/portlets/wiki/images new.png New icon
/samples/webcenter/portlets/wiki/images plus.png Expand icon
/samples/webcenter/portlets/wiki/images rss.png RSS feed link icon
/samples/webcenter/portlets/wiki/images search.png Search icon
/samples/webcenter/portlets/wiki/images splitter-collapse.png Horizontal collapse splitter icon
/samples/webcenter/portlets/wiki/images splitter-expand.png Horizontal expand splitter icon
/samples/webcenter/portlets/wiki/images splitter-v-collapse.png Vertical collapse splitter icon
/samples/webcenter/portlets/wiki/images splitter-v-expand.png Vertical expand splitter icon
/samples/webcenter/portlets/wiki/images/default banner.png Banner image for the default template

Portlet Definition Files

Directory File Description
/WEB-INF portlet.xml JSR 168 Portlet Definitions

Deployment

Deployment of the sample portlet will vary somewhat depending on the portlet container being used. Please consult the relevant documentation for the portlet container for more specific instructions, some of which may be found in the Additional References.

For many portlet containers the Java Web Archive (WAR) file may be deployed directly using various development and administration tools and utilities. If you are planning on exploring and modifying the sample code you should deploy this as an "exploded" archive on the file system. This may be done via an import utility, as in an IDE, or via a standard JAR or Zip utility.

When using the portlet via Web Services for Remote Portlets (WSRP), please consult the product-specific instructions for creating the consumer and/or producers for the portlets. The portlet has been designed and tested with WSRP in mind, but there may be additional configuration and/or modifications to the code necessary depending on the way the server is configured.

The sample portlet does not provide container-specific security hooks and uses a simple user name based system for accessing the remote services. It assumes that the user exists on both the local and remote systems, and that the authentication is handled by the portal container. Additional security via common security realms, SSO, credential vaults, and the like will require configuration and possible code modifications.

Configuration

Once the portlet has been deployed on the server it must be added to a portal, page, etc. to be used. The portlet has been designed to be usable by an anonymous (non-authenticated) user, although any customizations made will only be available for the life of the session. When the user authenticates the portlet state will be stored in the portlet preferences, with little need for further manual configuration.

The portlet has been designed to be "bootstrapped" when initially accessed by the user. It will display the configuration screen, allowing the user to enter or select from a list of available options. The table below contains the name of the preferences and the expected values.

Portlet Properties

Name Value(s) Description
URL http://<hostname>:<port> The host where the server is deployed
Name mywiki, demowiki, etc. The name of the wiki
Page WelcomePage, MyPage, etc. The name of the current page to show
Max Number Maximum number of entries to show
Template default or plain The display template to use

Additional References