Portal Server provides programming tools that enable developers to create custom portlets. These include the following:
Provider API for extending the base classes to create new providers
Desktop API for creating new providers for delivering portal content
Portlet API for implementing Java Specification Request (JSR) 286: Portlet Specification 2.0
JSF Portlet Bridge 1.2 for running JavaServerTM Faces-based applications as portlets in a web container that supports JSF 1.2
Struts Portlet Bridge for developing Java 2 Platform, Enterprise Edition (J2EETM) applications
Simple API for Workflow for writing task management portlets in conjunction with Sun Java Composite Application Platform Suite human workflow feature
Content Management API to interact with the content management system and write custom portlets for using content in the repository
Administration portlet for developing administration portlets that enable Desktop functions of a portal to be managed from the Desktop instead of from the management console
Authentication API for changing the appearance and behavior of the authentication screen, enabling authentication modules, and adding custom authentication modules
Search API for creating and modifying search objects in C
C API for customizing the way the robot crawls URLs and generates resource descriptions
Java APIs for searching the database, for submitting data, and for manipulating search objects such as resource descriptions
Search provider tag library and helper beans to create custom search JSPs
Resource Description Manager API for enabling two processes to exchange resource descriptions across a network
Programmers can use other tools to create custom portlets. The ROME library (not a Portal Server tool) for parsing, generating and publishing RSS (rich site summary) and Atom feeds are examples.
Portal Server provides a sample portlet to illustrate portlet functions and facilitate the design of custom portlets. For more information about Portal Server programming tools, see Sun Java System Portal Server 7.2 Developer’s Guide