# Oracle WebCenter Services Sample Portlets - Wiki

#### Date: March, 2009

## Table of Contents

- Introduction
- Application Overview
- Sample Files
- Deployment
- Configuration
- Additional References

## Introduction

- Software Prerequisites
- Knowledge Prerequisites

### Software Prerequisites

This sample portlet requires the following:

- Oracle WebCenter Wiki and Blog Server 10g R3

It also requires one of the following portlet containers:

- Oracle WebCenter 10g R3
- Oracle WebCenter Interaction 10g R3
- Oracle WebLogic Portal 10g R3
- Oracle Portal 10g R3

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.

### Portlet Package Files

Directory | Description
--- | ---
/docs | Installation & Configuration documentation for samples
/imageserver | All CSS, JS, and IMG files needed for the portlet
/serverpackages | PTE file used for importing of WCI portal objects
/src | All JSPs and Java classes used for portlet functionality
/webapp | Web Application Archive needed for deployment of the portlet

### Java Source and Property Files

Directory | File | Description
--- | --- | ---
/src/samples/webcenter/portlets/wiki | WikiPortlet.java | The JSR 168 Portlet source file
/src/samples/webcenter/portlets/wiki | WikiPortlet.properties | Properties file for messages and choices
/src/samples/webcenter/services/wiki | BlogType.java | Generated from WSDL
/src/samples/webcenter/services/wiki | DomainInfo.java | Generated from WSDL
/src/samples/webcenter/services/wiki | PageEditMode.java | Generated from WSDL
/src/samples/webcenter/services/wiki | PageInfo.java | Generated from WSDL
/src/samples/webcenter/services/wiki | PageType.java | Generated from WSDL
/src/samples/webcenter/services/wiki | SearchResult.java | Generated from WSDL
/src/samples/webcenter/services/wiki | SearchType.java | Generated from WSDL
/src/samples/webcenter/services/wiki/remote | WikiRemoteServiceSoapBindingStub.java | Generated from WSDL
/src/samples/webcenter/services/wiki/remote | WikiService.java | Generated from WSDL
/src/samples/webcenter/services/wiki/remote | WikiServiceProxy.java | Generated from WSDL
/src/samples/webcenter/services/wiki/remote | WikiServiceService.java | Generated from WSDL
/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-beanutils.jar | Apache Commons Bean Utilities
/WEB-INF/lib | commons-digester-1.5.jar | Apache Commons Digester
/WEB-INF/lib | commons-discovery.jar | Apache Commons Discovery
/WEB-INF/lib | commons-logging.jar | Apache Commons Logging
/WEB-INF/lib | glassfish.jstl_1.2.0.1.jar | Glassfish JSTL 1.2 Implementation
/WEB-INF/lib | jakarta-oro-2.0.7.jar | Apache Text Processing for Regular Expressions
/WEB-INF/lib | jaxrpc.jar | Glassfish Reference Implmentation for XML based RPC
/WEB-INF/lib | jsr168tags.jar | WCI JSR 168 Portlet Tag Implementation
/WEB-INF/lib | log4j-1.2.8.jar | Apache Logging Services
/WEB-INF/lib | openfoundation.jar | WCI Interoperability Objects Implementation
/WEB-INF/lib | openkernel.jar | WCI Base Kernel Implementation
/WEB-INF/lib | openlog-framework.jar | WCI Logging Implementation
/WEB-INF/lib | orielly.jar | Orielly Servlet Support Implementation
/WEB-INF/lib | ptportletcontainer.jar | WCI JSR 168 Portlet Implementation
/WEB-INF/lib | pthome.jar | WCI Base Configuration Implementation
/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 | xalan.jar | Apache XML XSLT Parser Implementation
/WEB-INF/lib | xerces144.jar | Apache XML Parser Project

### JavaServer Pages (JSP)

Directory | File | Description
--- | --- | ---
/wiki | wikiEdit.jsp | Edit mode JSP
/wiki | wikiHelp.jsp | Help mode JSP
/wiki | wikiView.jsp | View mode JSP
/wiki/views | init.jspx | Initializes the JSP and JavaScript variables
/wiki/views | main.jspx | Renders the main user interface
/wiki/views | page.jspx | Used for viewing and editing a wiki page
/wiki/views | search_results.jspx | Used for viewing the search results

### Image, JavaScript, and Style Sheet Files

Directory | File | Description
--- | --- | ---
/imageserver/plumtree/portal/custom/wcservices/wiki/css | default.css | Default style sheet
/imageserver/plumtree/portal/custom/wcservices/wiki/css | plain.css | Plain style sheet
/imageserver/plumtree/portal/custom/wcservices/wiki/images | configure.png | Configure settings icon
/imageserver/plumtree/portal/custom/wcservices/images | delete.png | Delete icon
/imageserver/plumtree/portal/custom/wcservices/wiki/images | edit.png | Edit icon
/imageserver/plumtree/portal/custom/wcservices/wiki/images | help.png | Help icon
/imageserver/plumtree/portal/custom/wcservices/wiki/images | minus.png | Collapse icon
/imageserver/plumtree/portal/custom/wcservices/wiki/images | new.png | New icon
/imageserver/plumtree/portal/custom/wcservices/wiki/images | plus.png | Expand icon
/imageserver/plumtree/portal/custom/wcservices/wiki/images | rss.png | RSS feed link icon
/imageserver/plumtree/portal/custom/wcservices/wiki/images | search.png | Search icon
/imageserver/plumtree/portal/custom/wcservices/wiki/images | splitter-collapse.png | Horizontal collapse splitter icon
/imageserver/plumtree/portal/custom/wcservices/wiki/images | splitter-expand.png | Horizontal expand splitter icon
/imageserver/plumtree/portal/custom/wcservices/wiki/images | splitter-v-collapse.png | Vertical collapse splitter icon
/imageserver/plumtree/portal/custom/wcservices/wiki/images | splitter-v-expand.png | Vertical expand splitter icon
/imageserver/plumtree/portal/custom/wcservices/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 follow all of the standard procedures for WCI portlet deployment. Please follow all of the steps below:

- 1. Deploy the WCWikiBlog.war application to a valid Java application server
- 2. Deploy all images to the root of the Image Server
- 3. Using the Migration Wizard, import the wcwikiblog serverpackage
- 4. Modify the newly created WebServices Remote Server to verify the base URL
- 5. Add the portlet to a MyPage or Community Page

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

- Oracle WebCenter Wiki and Blog Server Installation, Configuration and User's Guide
- Oracle WebCenter Suite Home Page
- Oracle WebCenter Services
- Oracle WebCenter Interaction (WCI)
- Oracle WebLogic Portal (WLP)
- Oracle Portal
- Oracle Technology Network (OTN)
- Java Portlet Specification (JSR 168)
- JavaServer Pages
- JavaServer Pages Standard Tag Library
- JavaScript
- Cascading Style Sheets (CSS)
- Web Services