57 Integrating with Oracle WebCenter Portal: Spaces

This chapter describes how to expose WebCenter Portal: Spaces functionality in a WebCenter Portal: Framework application, using Spaces APIs. Through these APIs, you can create new spaces, manage space membership, retrieve space information, and more, from your Framework applications.

The chapter also describes how to expose information from other applications, such as Framework applications in Spaces.

This chapter includes the following sections:

Note:

Custom-built task flows that implement Spaces APIs (described in this chapter) can be deployed on WebCenter Portal: Framework applications, but you cannot deploy them to WebCenter Portal: Spaces.

Audience

This section is intended for developers who want to expose Spaces functionality in their WebCenter Portal: Framework applications.

57.1 Introduction to WebCenter Portal: Spaces

WebCenter Portal's Spaces application is a Web-based application, built using the WebCenter Portal: Framework, WebCenter Portal services, and Composer. The Spaces application furnishes all the tools you require to rapidly create portals, communities, and social sites capable of accommodating thousands of users and encompassing diverse populations with differing languages. Figure 57-1 shows a typical Spaces home page.

Figure 57-1 WebCenter Portal: Spaces

Description of Figure 57-1 follows
Description of "Figure 57-1 WebCenter Portal: Spaces"

Out of the box, Spaces offers a configurable work environment that enables individuals and groups to work and collaborate more effectively. The application is a self-service solution for managing individual and group interactions. It also provides intuitive tools that allow business users to come together and share information by adding pages and resources such as documents, charts, reports, portlets, business applications, services, and other ADF resources or views.

The Spaces application provides two work environments within a single application: the Home space and group spaces. The Home space provide each user with a private work area for storing personal content, viewing and responding to business process assignments, and performing many other tasks relevant to his or her unique working day. Group spaces (from hereon referred to as spaces) support discrete work areas organized around an area of interest or a common goal.

Spaces support the formation and collaboration of project teams and communities of interest. Spaces bring people together in a virtual environment for ongoing interaction and information sharing—in essence, forming a social network. Figure 57-2 shows an example of a space.

Figure 57-2 Standards - Sample Space

Description of Figure 57-2 follows
Description of "Figure 57-2 Standards - Sample Space"

Structurally, spaces comprise pages, many of which are dedicated to a particular service. For example, a Lists page provides the means to create and publish multicolumn lists. A Documents page provides a central library for uploading, organizing, and managing group content. A Search page includes features for saving searches and managing search results. In addition to these and other default pages, a space supports custom pages created by authorized users. Page creation is easy with a wide selection of predefined layouts. With little effort, users can provide pages neatly tailored to the unique needs of their team or community. For more information about spaces, see the Oracle Fusion Middleware User's Guide for Oracle WebCenter Portal: Spaces.

WebCenter Portal provides various services that spaces can use to offer a wide variety of functionality in support of group objectives. For example, a Documents service provides features for uploading and managing content; a Discussions service provides features for creating, managing, and participating in discussion forums. Some other examples of these services include Events, Lists, Announcements, and Search. These services are what helps to make Spaces a productive, collaborative working environment. Services expose subsets of their features and functionality through task flows. A task flow is a reusable view that may expose all or a subset of the features available from a particular service. For example, a Recent Documents task flow provides a subset of the functionality offered through the Documents service by listing documents that have recently been opened, added, or affected in some way.

To help users get spaces up and running quickly, they can be based on out-of-the-box templates. Additionally, Spaces allows users to turn any space into a template, so they can design spaces to suit specific audiences and offer them up as templates for others to use. For information about creating templates, see "Creating Custom Space Templates" in the Oracle Fusion Middleware User's Guide for Oracle WebCenter Portal: Spaces.

Spaces can consume portlets from any WSRP, Oracle PDK-Java, or pagelet producer if the producer is registered first. Therefore, any portlets you create for Framework applications can be used in Spaces too. For more information, see the "Managing Portlet Producers" chapter in the Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

57.2 Exposing Spaces in WebCenter Portal Applications Using APIs

This section includes the following subsections:

57.2.1 Introduction to Spaces APIs

While using your WebCenter Portal: Framework application, users may encounter situations where Spaces would be useful to help them complete a particular task. In such cases, it would be much less disruptive to remain within the context of the current application, rather than having to switch to the Spaces application. To this end, Spaces provides access to a subset of its functionality through several APIs. Using these APIs, you can integrate powerful Spaces functionality into your Framework application.

You can use Spaces APIs to:

Spaces APIs are contained within several classes. Table 57-1 lists the different classes and describes the purpose of the APIs within each class.

Table 57-1 Spaces API Classes

Class Contains APIs for More Information

GroupSpaceWSClient

Creating and managing spaces and space templates

Managing space membership

Retrieving space information

Section 57.2.5, "How to Provide Spaces Functionality in WebCenter Portal Applications"

GroupSpaceWSContext

Establishing context before calling the APIs

Section 57.2.4.4, "Setting Up the Spaces Client Context"

GroupSpaceWSException

Managing exceptions raised by the APIs

Section 57.2.6, "How to Handle Exceptions Raised by Spaces APIs"

GroupSpaceWSMembers

Retrieving information about space members

Section 57.2.5.3, "Retrieving Information for Spaces and Space Templates"

GroupSpaceWSMetadata

Retrieving space information

Section 57.2.5.3, "Retrieving Information for Spaces and Space Templates"


Spaces can have many different applications. From your perspective, as a WebCenter Portal: Framework application developer, here are a couple of case studies describing scenarios where building and working with Spaces through the APIs might come in useful:

57.2.2 Case Study 1: Purchasing Application Uses a Space to Evaluate Suppliers

Consider a purchasing application built using the Oracle WebCenter Portal: Framework. This application tracks suppliers, pricing, lead-time requirements, delivery time estimates, and performance history.

Users of the purchasing application must also be able to select and evaluate supplier candidates. Supplier evaluation is a collaborative process; it requires people from various areas of a company. For example, a design engineer and manufacturing representative must verify that an item being purchased meets the required technical specifications; a purchasing agent can negotiate prices, logistics and contractual issues; and a manager or executive has to approve the deal. How could the purchasing application initiate supplier evaluations?

Typically, the purchasing manager receives a purchase requisition from the manufacturing department. Sometimes the purchase order cannot be completed because the requisition cannot be delivered by the usual supplier in the time frame required by manufacturing. Therefore, a new supplier that can meet delivery and pricing requirements must be determined. The purchasing manager can add a candidate supplier into the system but the purchasing manager needs a way to organize and share information, and collaborate with people in and outside his team so that he can assess the supplier.

A space can provide this collaborative environment. So the purchasing application includes a call to the createGroupSpace API, and this enables the purchasing manager to click a link (Create a New Space) that displays a "Create Space" dialog, directly from the purchasing application, as shown in Figure 57-3.

Figure 57-3 Purchasing Application Includes a Space Creation Link

Description of Figure 57-3 follows
Description of "Figure 57-3 Purchasing Application Includes a Space Creation Link"

When the purchasing manager clicks the link a custom dialog prompts him for some information. The purchasing manager enters a name and description for the space, and also selects a template (Purchasing Projects) as shown in Figure 57-4. The Purchasing Projects template sets up the space quickly so it is ready to use right away. For example, the template defines which services are required (events, a document library, and so on) and any custom pages that may be required. Because the APIs enable you to create your own "Create Space" dialog, you can apply your own look and feel and terminology.

Figure 57-4 Custom Create Space Dialog

Description of Figure 57-4 follows
Description of "Figure 57-4 Custom Create Space Dialog"

In this scenario, the purchasing manager chooses the Purchasing Projects template from the template list. Another approach would be to have the purchasing application pass in a default template value. With this additional default, there would be one less thing (determining which template to use) for the purchasing manager to think about. You could even generate the name of the space from the Supplier ID so that the purchasing manager would not have to enter any details at all. The space could then be created with just the click of a link.

When the purchasing manager clicks OK, the new Supplier Evaluation space displays, similar to that shown in Figure 57-5.

Figure 57-5 Supplier Evaluation Space

Description of Figure 57-5 follows
Description of "Figure 57-5 Supplier Evaluation Space"

Figure 57-5 shows a Home page for the Supplier Evaluation space, which includes an events calendar, documents the group may find useful, an area for announcements, and so on. Each of these areas was determined by the Purchasing Projects template. In addition a link to the purchasing application transaction instance from which the space was created is also provided. Clicking this link (Add/Update Vendors) displays the screen Add/Update Vendor transaction for the supplier Shaker Distribution.

In the Spaces application, the purchasing manager becomes the moderator of the space automatically. The moderator can add content to the space, initiate discussions, invite members, and collaborate with interested parties. Once consensus is reached regarding the supplier, the purchasing manager is can approve or reject the supplier concerned.

57.2.3 Case Study 2: Customer Support Center Application Uses a Space to Discuss Customer Escalations

Consider a Customer Support Center application built using the Oracle WebCenter Portal: Framework that tracks customer calls and issues.

A support analyst is notified that a customer has escalated the service request that the analyst has been working on. The analyst knows that she can find a quicker resolution to the issue if she can involve other people from different areas of the company. For example:

  • The project manager whose team implemented the project can provide more in depth knowledge of the project.

  • An account manager who has been in constant touch with the customer can provide specific information about the implementation of the project at the customer site.

  • Another support analyst, who has worked on a similar escalation before, can provide information about how that escalation was resolved.

This problem can be solved collaboratively using a space. The support analyst creates a space from within the Customer Support Center application and adds the required members. These members are then notified and use the space to start discussing the customer situation. The support analyst views their updates to the space inside the support application, navigating to the space whenever necessary to obtain more specific details. Based on the information she gets from the other members of the space, she can diagnose the problem and offer the customer a solution very quickly.

57.2.4 How to Set Up Your WebCenter Portal Application to Use the Spaces APIs

Before you can use the Spaces APIs you must ensure that the Spaces application is up and running and that your project is set up correctly in JDeveloper.

This section includes the following subsections:

57.2.4.1 Verifying That the Spaces Application Is Up and Running

If you want to use the SpacesAPIs, the Spaces application must be up and running.

To verify that Spaces is up and running:

  1. Start Spaces. The URL is:

    http://host:port/webcenter
    

    You do not need to log in.

  2. Verify that the Spaces Web service is up and running. The URL is:

    http://host:port/webcenter/SpacesWebService?WSDL
    

    You should see a page similar to the one shown in Figure 57-6. If you do not see this page, contact your Fusion Middleware administrator.

    Figure 57-6 SpacesWebService WSDL

    Description of Figure 57-6 follows
    Description of "Figure 57-6 SpacesWebService WSDL"

For more information about setting up Spaces, see the "Getting the Spaces application Up and Running" chapter in the Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

57.2.4.2 Setting Up the WebCenter Portal Application to Use Spaces APIs

Before you can call the Spaces APIs in your WebCenter Portal: Framework application, you must ensure that your application contains the correct libraries and that there is a connection to the Spaces Web service.

To set up your application to use the Spaces APIs:

  1. Start JDeveloper.

  2. In the Application Navigator, expand the application for which you want to provide Spaces functionality.

    The application should be based on the WebCenter Portal Application template.

  3. Right-click the view-controller project and choose Project Properties.

  4. Select Libraries and Classpath.

  5. Check that the following libraries are available in your project, adding any as necessary:

    • ADF DVT Faces Runtime

    • ADF Model Generic Runtime

    • ADF Model Runtime

    • JAX-RPC Client

    • JAX-WS Client

    • JAXB

    • Oracle JEWT

    • Spaces Client

    • JDEV_HOME/jdeveloper/oracle_common/modules/oracle.adf.model_11.1.1/adfm.jar

    • JDEV_HOME/jdeveloper/oracle_common/modules/oracle.xdk_11.1.1/xml.jar

  6. Click OK.

  7. In the Application Resources panel of the Application Navigator, right-click Connections and choose New Connection > URL.

  8. In the Name field, enter SpacesWebServiceEndpoint.

  9. In the URL Endpoint field, enter the Spaces Web service URL:

    http://host:port/webcenter/SpacesWebService
    
  10. Click OK.

    The connection information is added to the connections.xml file in the application's META-INF directory, for example:

    C:\JDeveloper\mywork\mySpacesApplication\.adf\META-INF
    

    If the connections.xml file does not exist, it is created.

  11. Open the connections.xml file and verify that the code shown in Example 57-1 appears:

    Example 57-1 Spaces Web Service Endpoint URL Connection

    <Reference name="SpacesWebServiceEndpoint"
    className="oracle.adf.model.connection.url.HttpURLConnection">
    <Factory className="oracle.adf.model.connection.url.URLConnectionFactory"/>
    <RefAddresses>
      <XmlRefAddr addrType="SpacesWebServiceEndpoint">
        <Contents>
          <urlconnection name="SpacesWebServiceEndpoint"
          url="http://host:port/webcenter/SpacesWebService"/>
        </Contents>
      </XmlRefAddr>
    </RefAddresses>
    </Reference>
    

    If you need to set the SpacesWeb service endpoint at runtime, you can use the setGroupSpaceWebServiceEndpoint API (Example 57-2). You can write a wrapper API that takes the endpoint as a parameter and then calls setGroupSpaceWebServiceEndpoint, passing the parameter. An exception is reported as INFO in the log file if the endpoint is not set in connections.xml.

    Example 57-2 Setting the Spaces Web Service Endpoint at Runtime

    client.setGroupSpacesWebServiceEndpoint("http://myserver.example.com/webcenter/SpacesWebService");
    

57.2.4.3 Securing the Connection Between the Application and Spaces

Before using the Spaces APIs in your WebCenter Portal: Framework application, you must ensure that the communication between the application (the consumer) and Spaces (the producer) is secure. This is so that the identity of the user invoking the APIs is propagated to Spaces in a secure manner where the integrity and confidentiality of the communication is maintained.

To do this, the Spaces APIs use a policy of SAML based token passing with message protection. Your administrator must create a Java keystore and update the credential store so that Spaces can verify the authenticity of the security tokens received from your application. You must then register this keystore and update the credential store using JDeveloper.

For information about the steps that the administrator must perform, see "Securing Spaces for Applications Consuming Spaces Client APIs with WS-Security" in the Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

57.2.4.4 Setting Up the Spaces Client Context

Before calling any of the Spaces APIs in your application code, a few setup steps are required.

To set up the Spaces client context

  1. Domain-wide configuration settings are used when you call Spaces APIs from an application deployed on WebLogic Server (WLS), unless you specifically choose to override them. To override or set security configuration parameters, use the APIs provided by the GroupSpaceWSContext class.

    In particular, you must set the SAML issuer name and the public key alias for Spaces, which are required for data encryption. If the Spaces Web service endpoint is not set in the connections.xml file, you can set this too.

    For example:

    GroupSpaceWSContext context = new GroupSpaceWSContext();
    
    context.setEndPoint("endPointUrl");
    context.setSamlIssuerName("samlIssuer");
    context.setRecipientKeyAlias("producer");
    
    groupSpaceWSClient = new GroupSpaceWSClient(context);
    

    Where:

    • endPointUrl is the Spaces Web service endpoint, for example, http://server.example.com:8912/webcenter/SpacesWebService.

    • samlIssuer is the issuer URI of the SAML Authority issuing assertions for this SAML Asserting Party, for example, http://www.oracle.com. Out-of-the-box, http://www.oracle.com is the only trusted SAML issuer.

    • producer is the public key alias for Spaces, for example, orakey if you are using a simple topology.

      For information about the steps that the administrator must perform, see "Securing Spaces for Applications Consuming Spaces Client APIs with WS-Security" in the Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

    For a full list of the APIs provided by the GroupSpaceWSContext class, see the Oracle Fusion Middleware Java API Reference for Oracle WebCenter Portal.

  2. Initialize the Spaces client by passing the context. For example:

    GroupSpaceWSClient client = new GroupSpaceWSClient(context);
    
  3. Once you have initialized the client, check everything is set up correctly by calling:

    getWebCenterSpacesURL();
    

    If the correct URL is returned, everything is set up correctly and you can start using the Spaces APIs.

57.2.5 How to Provide Spaces Functionality in WebCenter Portal Applications

The Spaces APIs enable you to perform common space-related operations within a WebCenter Portal: Framework application. Most of these APIs are provided by the GroupSpaceWSClient class. The APIs can be grouped into three main categories:

Table 57-2 lists the APIs in the GroupSpaceWSClient class.

Table 57-2 APIs for Performing Common SpacesOperations

Spaces API Category Description

createGroupSpace

Managing Spaces and Space Templates

Creates a new space based on a template. See Section 57.2.5.1.1, "Creating a Space."

setCustomAttribute

Managing Spaces and Space Templates

Creates one or more custom attributes for a space. See Section 57.2.5.1.2, "Creating a Custom Attribute."

deleteGroupSpace

Managing Spaces and Space Templates

Permanently removes a space from Spaces. See Section 57.2.5.1.4, "Deleting a Space."

createGroupSpaceTemplate

Managing Spaces and Space Templates

Creates a new space template based on an existing space. See Section 57.2.5.1.3, "Creating a Space Template."

addMember

Managing Space Membership

Makes a user (or a group) a space member with a specific role. See Section 57.2.5.2.1, "Adding Members to a Space."

inviteMember

Managing Space Membership

Invites a list of users to become members of a space. See Section 57.2.5.2.2, "Inviting Users to Join a Space."

removeMember

Managing Space Membership

Revokes space membership. See Section 57.2.5.2.3, "Removing Members from a Space."

getRoles

Managing Space Membership

Retrieves all the roles for a given space. See Section 57.2.5.2.4, "Retrieving Role Information."

getGroupSpaces

Retrieving Information for Spaces and Space Templates

Retrieves a list of spaces for a given query string. See Section 57.2.5.3.1, "Retrieving a List of Spaces."

getPublicGroupSpaces

Retrieving Information for Spaces and Space Templates

Retrieves a list of public spaces for a given query string. See Section 57.2.5.3.2, "Retrieving a List of Public Spaces."

getDiscoverableGroupSpaces

Retrieving Information for Spaces and Space Templates

Retrieves a list of discoverable spaces for a given query string. See Section 57.2.5.3.3, "Retrieving a List of Discoverable Spaces."

getGroupSpaceMetadata

Retrieving Information for Spaces and Space Templates

Retrieves information (metadata) about the space. See Section 57.2.5.3.4, "Retrieving Space Metadata."

getGroupSpaceMetadataByGuid

Retrieving Information for Spaces and Space Templates

Retrieves information (metadata) about a space given the space's GUID. See Section 57.2.5.3.4, "Retrieving Space Metadata."

getGroupSpaceTemplates

Retrieving Information for Spaces and Space Templates

Retrieves a list of space templates for a given query string. See Section 57.2.5.3.5, "Retrieving a List of Space Templates."

getGroupSpaceTemplateMetadata

Retrieving Information for Spaces and Space Templates

Retrieves information (metadata) about the space template. See Section 57.2.5.3.6, "Retrieving Space Template Metadata."

getGroupSpaceTemplateMetadataByGuid

Retrieving Information for Spaces and Space Templates

Retrieves information (metadata) about the space template given the template's GUID. See Section 57.2.5.3.6, "Retrieving Space Template Metadata."

getWebCenterSpacesURL

Retrieving Information for Spaces and Space Templates

Retrieves the Spaces application URL. See Section 57.2.5.3.7, "Retrieving the Spaces URL."

getGroupSpaceURL

Retrieving Information for Spaces and Space Templates

Retrieves a space URL. See Section 57.2.5.3.8, "Retrieving a Space URL."

getServiceRSSFeedURL

Retrieving Information for Spaces and Space Templates

Retrieves RSS feed URLs for the specified space service.

getServiceRSSFeedURLbyGuid

Retrieving Information for Spaces and Space Templates

Retrieves RSS feed URL for a given space by GUID and a given service.


57.2.5.1 Managing Spaces and Space Template

Use the following Spaces APIs to manage your spaces and space templates:

  • createGroupSpace

  • setCustomAttribute

  • createGroupSpaceTemplate

  • deleteGroupSpace

Before you begin

Before using any of these APIs, you must complete all the steps listed in Section 57.2.4, "How to Set Up Your WebCenter Portal Application to Use the Spaces APIs."

This section includes the following subsections

57.2.5.1.1 Creating a Space

Use the createGroupSpace API to create a space that is based on an existing space template.

To use this API, specify:

  • The internal name of the new space. This name can contain blank spaces.

  • A display name for the new space.

  • A description of the space. Although this is not mandatory, we recommend that you provide a description to help users identify the space's purpose.

  • The name of the space template you want to use. This should be the internal name of the template, not the display name.

Optionally, you can provide a comma separated list of keywords to help users locate the space in searches.

Example 57-3 creates a space with the name Databases that is based on the CommunityofInterest template. The example also specifies two search keywords (databases and Oracle).

Example 57-3 Creating a Space

//create the space
GroupSpaceWSMetadata gsMetadata = 
client.createGroupSpace("Databases", "Databases" "A community for people interested in databases", "databases, oracle", "CommunityofInterest");
//print the space GUID to provide confirmation of creation
System.out.println("GUID: " + gsMetadata.getGuid());

For an example of how to provide custom attributes for a new space, see Section 57.2.5.1.2, "Creating a Custom Attribute."

57.2.5.1.2 Creating a Custom Attribute

Every space comes with built-in attributes such as name, description, date created, icon, and so on. In addition, you can define custom attributes that store additional information (metadata) that is unique to the space and its characteristics.

Use the setCustomAttribute API to specify a custom attribute for a space. To use this API, specify the name of the space and a name, description, type, and value for the custom attribute.

Example 57-4 creates the Databases space and then creates a custom attribute for that space. The attribute is named Vendors, with the description List of vendors. It takes string values of Oracle and IBM.

Example 57-4 Creating a Custom Attribute

//create the space
client.createGroupSpace("Databases", "Databases", "A community for people interested in databases", null, "CommunityofInterest");
//create the custom attribute
client.setCustomAttribute("Databases", "Vendors", "List of vendors", "java.lang.String", "Oracle, IBM");
57.2.5.1.3 Creating a Space Template

Use the createGroupSpaceTemplate API to create a space template based on an existing space. To use this API specify a name, display name, and description for the template, and the name of the space to use to create the template.

Example 57-5 creates a space template based on the Databases space.

Example 57-5 Creating a Space Template

GroupSpaceWSMetadata templMetadata =
client.createGroupSpaceTemplate("DatabasesTemplate", "Databases Template", 
"A template based on the Databases space", "Databases");
//print the template GUID to provide confirmation of creation
System.out.println("GUID: " + templMetadata.getGuid());
57.2.5.1.4 Deleting a Space

Use the deleteGroupSpace API to permanently delete a space from the Spaces application. To use this API, specify the name of the space to delete. The API returns a boolean value to indicate whether the deletion was successful.

Example 57-6 deletes the space with the name Databases. The example uses the boolean value returned by the API to print a message about the success or failure of the operation.

Example 57-6 Deleting a Space

//delete the space
Boolean success = client.deleteGroupSpace("Databases");
//print a message depending on the result of the deletion
if(success)
{
  System.out.println("Operation Succeeded");
}
else
{
  System.out.println(Operation Failed");
}

57.2.5.2 Managing Space Membership

Use the following Spaces APIs to manage space membership:

  • addMember

  • inviteMember

  • removeMember

  • getRoles

Before you begin

Before using any of these APIs, you must complete all the steps listed in Section 57.2.4, "How to Set Up Your WebCenter Portal Application to Use the Spaces APIs."

This section includes the following subsections:

57.2.5.2.1 Adding Members to a Space

Use the addMember API to give users (and groups) space membership and assign the new members to a specific role. To use this API, specify the name of the space, and a list of users/groups. The list must contain objects of type GroupSpaceWSMembers that specify the user/group name and the role to give that user/group in the space.

You must specify the name of a valid user or user group that exists in the Spaces identity store. For the role, choose one of the default roles (Moderator, Participant, Viewer) or a custom role (if any). To retrieve a list of the available roles for a space, use the getRoles API. For more information, see Section 57.2.5.2.4, "Retrieving Role Information." For more information about roles, see the "Managing Roles and Permissions for a Space" section in the Oracle Fusion Middleware User's Guide for Oracle WebCenter Portal: Spaces.

Example 57-7 makes users (of type GroupSpaceWSMembers) named Pat and Vicki and everyone in the Sales and Marketing user group, members of the Databases space. Pat and everyone in Sales and Marketing are granted the Viewer role. Vicki is assigned the Participant role.

Note:

Use setGroup(true) to indicate when you are adding a group of users.

Example 57-7 Adding Members to a Space

//create the list of users
List addMem = new ArrayList();
//create the GroupSpaceWSMembers objects
GroupSpaceWSMembers mem1 = new GroupSpaceWSMembers("pat", "Viewer");
GroupSpaceWSMembers mem2 = new GroupSpaceWSMembers("vicki", "Participant");
GroupSpaceWSMembers grp1 = new GroupSpaceWSMembers("Sales", "Viewer");
grp1.setGroup(true);
GroupSpaceWSMembers grp2 = new GroupSpaceWSMembers("Marketing", Viewer");
grp2.setGroup(true);
//add the GroupSpaceWSMembers objects to the list of users
addMem.add(mem1);
addMem.add(mem2);
addMem.add(grp1);
addMem.add(grp2);
//add the users to the Space
client.addMember("Databases", addMem);
//print a list of members to confirm the new members were added
GroupSpaceWSMetadata memMetData = client.getGroupSpaceMetadata("Databases");
for (GroupSpaceWSMembers mems: memMetData.getMembers())
{
  System.out.println(mems.getMember());
  System.out.println(mems.getRole());
}
57.2.5.2.2 Inviting Users to Join a Space

Use the inviteMember API to invite users to become members of a space. To use this API, specify the name of the space and a list of users to invite. The list must contain objects of type GroupSpaceWSMembers that specify the user name and the role to give that user in the space. An invitation to join the space is sent to each user, and each user can then accept or reject that invitation.

You must specify a valid user name that exists in the Spaces identity store. For the role, choose one of the default roles (Moderator, Participant, Viewer) or a custom role (if any). To retrieve a list of the available roles for a space, use the getRoles API. For more information, see Section 57.2.5.2.4, "Retrieving Role Information." For more information about roles, see the "Managing Roles and Permissions for a Space" section in the Oracle Fusion Middleware User's Guide for Oracle WebCenter Portal: Spaces.

Example 57-8 invites users (of type GroupSpaceWSMembers) named Pat and Vicki to become members of the Databases space with Viewer and Participant roles respectively.

Example 57-8 Inviting Users to Join a Space

//create the list of users
List inviteMem = new ArrayList();
//create the GroupSpaceWSMembers objects
GroupSpaceWSMembers mem1 = new GroupSpaceWSMembers("pat", "Viewer");
GroupSpaceWSMembers mem2 = new GroupSpaceWSMembers("vicki", "Participant");
//add the GroupSpaceWSMembers objects to the list of users
inviteMem.add(mem1);
inviteMem.add(mem2);
//invite the list of users to join the space
client.inviteMember("Databases", inviteMem);
57.2.5.2.3 Removing Members from a Space

Use the removeMember API to revoke space membership. To use this API, specify the name of the space, and a list of users. The list must contain objects of type GroupSpaceWSMembers that specify the user name. To obtain a list of current space members, use the getGroupSpaceMetadata API. For more information, see Section 57.2.5.3.4, "Retrieving Space Metadata."

Example 57-9 removes users (of type GroupSpaceWSMembers) Pat and Vicki from the membership of the Databases space.

Example 57-9 Removing Members from a Space

//create the list of users
List remMem = new ArrayList();
//create the GroupSpaceWSMembers objects
GroupSpaceWSMembers mem1 = new GroupSpaceWSMembers("pat");
GroupSpaceWSMembers mem2 = new GroupSpaceWSMembers("vicki");
2 lines
//add the GroupSpaceWSMembers objects to the list of users
remMem.add(mem1);
remMem.add(mem2);

//remove the users from the space
client.removeMember("Databases", remMem);
//print a list of members to confirm the members were removed
GroupSpaceWSMetadata memMetData = client.getGroupSpaceMetadata("Databases");
for (GroupSpaceWSMembers mems: memMetData.getMembers())
{
  System.out.println(mems.getMember());
  System.out.println(mems.getRole());
}
57.2.5.2.4 Retrieving Role Information

Use the getRoles API to retrieve all the roles for a given space. This is useful for determining which roles are available when adding or inviting members to a space. Roles include out-of-the box roles (Moderator, Participant, Viewer) and also custom roles (if any). To use this API, specify the name of the space.

Example 57-10 retrieves and displays role information for the Databases space.

Example 57-10 Retrieving Role Information

//retrieve the list of roles
List<String> roles = client.getRoles("Databases");
//print the list of roles
for (String role: roles)
{
  System.out.println(role);
}

57.2.5.3 Retrieving Information for Spaces and Space Templates

Use the following Spaces APIs to retrieve space information:

  • getGroupSpaces

  • getPublicGroupSpaces

  • getDiscoverableGroupSpaces

  • getGroupSpaceMetadata

  • getGroupSpaceMetadataByGuid

  • getGroupSpaceTemplates

  • getGroupSpaceTemplateMetadata

  • getGroupSpaceTemplateMetadataByGuid

  • getWebCenterSpacesURL

  • getGroupSpaceURL

Before you begin

Before using any of these APIs, you must complete all the steps listed in Section 57.2.4, "How to Set Up Your WebCenter Portal Application to Use the Spaces APIs."

This section includes the following subsections

57.2.5.3.1 Retrieving a List of Spaces

Use the getGroupSpaces API to obtain a list of spaces that match a given query string. To use this API, specify a query string. A null value query string returns a list of all spaces that are accessible to the current user.

The API returns spaces that are accessible to the current user, up to a maximum of 500.

Example 57-11 returns a list of spaces containing the string Database.

Example 57-11 Retrieving a List of Specific Spaces

List<String> allGroupSpaces = client.getGroupSpaces("Database");

Example 57-12 returns a list of all spaces to which the current user has access. This is achieved by specifying a null query string.

Example 57-12 Retrieving a List of All Spaces

List<String> allGroupSpaces = client.getGroupSpaces(null)
57.2.5.3.2 Retrieving a List of Public Spaces

Use the getPublicGroupSpaces API to obtain a list of public spaces that match a given query string. To use this API, specify a query string. A null value query string returns a list of all public spaces.

The API returns spaces that are accessible to all users, even those who are not logged in to the Spaces application, up to a maximum of 500.

Example 57-13 returns a list of public spaces containing the string Database.

Example 57-13 Retrieving a List of Specific Public Spaces

List<String> allPublicGroupSpaces = client.getPublicGroupSpaces("Database");

Example 57-14 returns a list of all public spaces. This is achieved by specifying a null query string.

Example 57-14 Retrieving a List of All Public Spaces

List<String> allPublicGroupSpaces = client.getPublicGroupSpaces(null)
57.2.5.3.3 Retrieving a List of Discoverable Spaces

Use the getDiscoverableGroupSpaces API to obtain a list of discoverable spaces that match a given query string. To use this API, specify a query string. A null value query string returns a list of all discoverable spaces.

The API returns spaces that are accessible to all users who are logged in to the Spaces application, up to a maximum of 500.

Example 57-13 returns a list of discoverable spaces containing the string Database.

Example 57-15 Retrieving a List of Discoverable spaces

List<String> allDiscoverableGroupspaces = client.getDiscoverableGroupspaces("Database");

Example 57-14 returns a list of all discoverable spaces. This is achieved by specifying a null query string.

Example 57-16 Retrieving a List of All Discoverable Spaces

List<String> allDiscoverableGroupSpaces = client.getDiscoverableGroupSpaces(null)
57.2.5.3.4 Retrieving Space Metadata

Use the getGroupSpaceMetadata or getGroupSpaceMetadataByGuid APIs to obtain information (metadata) about a particular space. This includes information such as the description of the space, the name of the user who created it, the date on which it was last updated, and so on.

To use the getGroupSpaceMetadata API, specify the name of the space. To use the getGroupSpaceMetadataByGuid API, specify the GUID of the space. Note that while the space name may be changed during the existence of the space, the GUID always remains the same. You can obtain the GUID of a space as follows:

getGroupSpaceMetadata("spaceName").getGuid();

Both APIs return a bean object that contains more APIs that you can then use for retrieving the space metadata. These APIs are provided by the GroupSpaceWSMetadata class. Table 57-3 lists the APIs returned by the bean object:

Table 57-3 APIs for Retrieving Space Metadata

Spaces API Description

getCreatedBy

Returns the name of the person who created the space.

getSpaceAttributes

Returns the custom attributes for a space.

getDescription

Returns the description of the space.

getDisplayName

Returns the display name of the space.

getGroupSpaceState

Returns the state of the space: active, offline, deleted.

getGuid

Returns the GUID of the space.

getIconURL

Returns the location of the space icon.

getKeywords

Returns a comma separated list of keywords used to describe the space.

getLastUpdated

Returns the date the space was last updated.

getLogoURL

Returns the location of the space logo.

getMailingList

Returns the mailing list for the space.

getMembers

Returns the current list of space members.

getName

Returns the internal name of the space.

isDiscoverable

Returns if the space is returned in searches made by users who are not members of the space.

isPublic

Returns if the space is available to users who are not logged in.


Example 57-17 retrieves the Description, Keywords, and Last Updated Date information for the Databases space given the space's name.

Example 57-17 Retrieving Space Metadata Using the Space Name

//get the exact name of the space
List<String> myGroupSpace = client.getGroupSpaces("Databases");
//check that the API returns a single result
if(myGroupSpace.size() == 1)
{
  //retrieve the metadata
  GroupSpaceWSMetadata metadata = client.getGroupSpaceMetadata(myGroupSpace);
  //get space description
  System.out.println("Description: " + metadata.getDescription());
  //get space keywords
  System.out.println("Keywords: " + metadata.getKeywords());
  //get the date the space was last updated
  System.out.println("Last Updated Date: "+ metadata.getLastUpdated().toString());
}

Example 57-18 retrieves the Display Name, Creator, and Last Updated Date information for the Databases space given the space GUID.

Example 57-18 Retrieving Space Metadata Using Space GUID

GroupSpaceWSMetadata metadata = client.getGroupSpaceMetadataByGuid("Guid");
//get space display name
System.out.println("Display Name: " + metadata.getDisplayName());
//get the name of the user who created the space
System.out.println("Created By: " + metadata.getCreatedBy());
//get the date the space was last updated
System.out.println("Last Updated Date: " + metadata.getLastUpdated().toString());

Example 57-19 retrieves the Name, Description, Type, and Value for every custom attribute associated with the Databases space.

Example 57-19 Retrieving Custom Attribute Metadata

//get the exact name of the space
List<String> myGroupSpace = client.getGroupSpaces("Databases");
//check that the API returns a single result
if(myGroupSpace.size() == 1)
{
  //retrieve the metadata
  GroupSpaceWSMetadata metadata = client.getGroupSpaceMetadata(myGroupSpace);
  //get list of custom attributes
  List<GSCustomAttribute> attributes = metadata.getCustomAttributes();
  //get name, description, type, and value for each custom attribute
  for(GSCustomAttribute attribute: attributes)
  {
    System.out.println("Name :" + attribute.getName());
    System.out.println("Description :" + attribute.getDescription());
    System.out.println("Type :" + attribute.getType());
    System.out.println("value.toString() :" + attribute.getValue().toString());
  }
}

Example 57-20 retrieves a list of members of the Databases space.

Example 57-20 Retrieving Membership Information

//get the exact name of the space
List<String> myGroupSpace = client.getGroupSpaces("Databases");
//check that the API returns a single result
if(myGroupSpace.size() == 1)
{
  //retrieve the metadata
  GroupSpaceWSMetadata metadata = client.getGroupSpaceMetadata(myGroupSpace);
  //get the list of members
  for(String member: metadata.getMembers())
  {
    System.out.println("Member UID: " + member);
  }
}
57.2.5.3.5 Retrieving a List of Space Templates

Use the getGroupSpaceTemplates API to obtain a list of space templates that match a given query string. To use this API, specify a query string. A null value query string returns a list of all templates that are accessible to the current user.

The API returns templates that are accessible to the current user, up to a maximum of 500.

Example 57-21 returns a list of space templates containing the string Interest.

Example 57-21 Retrieving a List of Specific Space Templates

List<String> allGroupSpaceTemplates = client.getGroupSpaceTemplates("Interest");

Example 57-22 returns a list of all space templates to which the current user has access. This is achieved by specifying a null query string.

Example 57-22 Retrieving a List of All Space Templates

List<String> allGroupSpaceTemplates = client.getGroupSpaceTemplates(null);
57.2.5.3.6 Retrieving Space Template Metadata

Use the getGroupSpaceTemplateMetadata and getGroupSpaceTemplateMetadataByGuid APIs to obtain information (metadata) about a particular space template. This includes information such as the description of the template, the name of the user who created it, and so on.

To use the getGroupSpaceTemplateMetadata API, specify the name of the template. To use the getGroupSpaceTemplateMetadataByGuid API, specify the GUID of the template. Note that while the space template name may be changed during the existence of the template, the GUID always remains the same.

Both APIs return a bean object that contains more APIs that you can then use for retrieving the space template metadata. These APIs are provided by the GroupSpaceWSMetadata class. Table 57-4 lists the APIs returned by the bean object:

Table 57-4 APIs for Retrieving Space Template Metadata

Spaces API Description

getCreatedBy

Returns the name of the person who created the template.

getDescription

Returns the description of the template.

getDisplayName

Returns the display name of the template.

getGuid

Returns the GUID of the template.

getIconURL

Returns the location of the template icon.

getKeywords

Returns a comma separated list of keywords used to describe the template.

getLogoURL

Returns the location of the template logo.

getName

Returns the internal name of the template.


Example 57-23 retrieves the GUID, Description, and Created By information for the CommunityofInterest space template given the template name.

Example 57-23 Retrieving Template Metadata Using the Template Name

GroupSpaceWSMetadata metadata = client.getGroupSpaceTemplateMetadata(myGroupSpaceTemplate);
//get the exact name of the space template
List<String> myGroupSpaceTemplate = client.getGroupSpaceTemplates("CommunityofInterest");
//check that the API returns a single result
if(myGroupSpaceTemplate.size() == 1)
{
  //retrieve the metadata -- get GUID
  System.out.println("GUID: " + metadata.getGuid());
  //get template description
  System.out.println("Description: " + metadata.getDescription());
  //get name of user who created the template
  System.out.println("Keywords: " + metadata.getCreatedBy());
}

Example 57-24 retrieves the name of a space template given the template GUID.

Example 57-24 Retrieving Template Metadata Given the Template GUID

GroupSpaceWSMetadata templGuidMetadata = client.getGroupSpaceTemplateMetadataByGuid("Guid");
System.out.println("Template Name: " + templGuidMetadata.getName());
57.2.5.3.7 Retrieving the Spaces URL

Use the getWebCenterSpacesURL API to obtain the URL of the Spaces application.

Example 57-25 retrieves the URL of the currently running instance of Spaces.

Example 57-25 Retrieving the WebCenter Portal: Spaces URL

String myWebCenterSpacesURL = client.getWebCenterSpacesURL();
57.2.5.3.8 Retrieving a Space URL

Use the getGroupSpaceURL API to obtain the URL of a specific space. This is useful for when you want to construct a hyperlink for a space or you have a relative URL that you need to make into an absolute URL. To use this API, specify the name of the space.

Example 57-26 retrieves the URL of the Databases space.

Example 57-26 Retrieving a Space URL

String myGroupSpaceURL = client.getGroupSpaceURL("Databases");

Example 57-27 prints a list of spaces as hyperlinks.

Example 57-27 Printing a List of Spaces as Hyperlinks

//get the list of spaces
List<String> spaces = client.getGroupSpaces("");
//print the list of spaces as hyperlinks
for (String spaceName : spaces)
{
  print("<a href =""" + client.getGroupSpaceURL(spaceName) + "">" + spaceName + "</a><br>");
}

To construct the URL of a particular page in a space, retrieve the space URL and then add the page information. For information about how to create pretty URLs for space pages, see "Spaces Pretty URLs" in the Oracle Fusion Middleware User's Guide for Oracle WebCenter Portal: Spaces.

57.2.5.3.9 Retrieving RSS Feed URLs for Space Services

Space members can find out what is happening in a space through various RSS news feeds. The following space RSS feeds are available:

  • Announcements RSS - View space announcements

  • Discussions RSS - Track contributions to discussion forums

  • Lists RSS - Watch for revisions to lists

  • Recent Activity RSS - Monitor recent activities

You can retrieve the RSS feed URLs for these space services, from a WebCenter Portal application, using the following Spaces APIs:

  • getServiceRSSFeedURL

  • getServiceRSSFeedURLbyGuid

To obtain an RSS feed URL, you must identify the space (by name or GUID) and specify the service required (using a service ID). Service IDs are available as constants in GroupSpaceWSClient as follows:

  • Announcements - GroupSpaceWSClient.ANNOUNCEMENT_SERVICE_ID

  • Discussions - GroupSpaceWSClient.DISCUSSION_FORUM_SERVICE_ID

  • Lists - GroupSpaceWSClient.LIST_SERVICE_ID

  • Recent Activities - GroupSpaceWSClient.RECENT_ACTIVITY_SERVICE_ID

Retrieving Space RSS News Feed URLs Using getServiceRSSFeedURL

Use the getServiceRSSFeedURL API to obtain service-related RSS news feed URLs for a particular space by specifying the space name.

To retrieve the RSS news feed URL for a service using getServiceRSSFeedURL, use the following:

String service_URL = client.getServiceRSSFeedURL("groupspace_name",service_ID);

Where:

service_URL refers to the service parameter being retrieved

groupspace_name is the name of the space

service_ID is the ID of the service for which you want to retrieve the RSS news feed URL. Use one of the following: ANNOUNCEMENT_SERVICE_ID, DISCUSSION_FORUM_SERVICE_ID, RECENT_ACTIVITY_SERVICE_ID, or LIST_SERVICE_ID.

Therefore, depending on the service required, you can use the following:

  • String service_URL = client.getServiceRSSFeedURL("groupspace_name", GroupSpaceWSClient.ANNOUNCEMENT_SERVICE_ID)

  • String service_URL = client.getServiceRSSFeedURL("groupspace_name", GroupSpaceWSClient.DISCUSSION_FORUM_SERVICE_ID)

  • String service_URL = client.getServiceRSSFeedURL("groupspace_name", GroupSpaceWSClient.LIST_SERVICE_ID)

  • String service_URL = client.getServiceRSSFeedURL("groupspace_name", GroupSpaceWSClient.RECENT_ACTIVITY_SERVICE_ID)

Example 57-28 retrieves the recent activity RSS feed URL for a space named Finance_Project:

Example 57-28 Retrieving the RSS Feed URL for Recent Activity

String recentActivityURL = client.getServiceRSSFeedURL("Finance_Project", GroupSpaceWSClient.RECENT_ACTIVITY_SERVICE_ID);

Retrieving RSS News Feed URLs Using GetServiceRSSFeedURLbyGuid

Use the getServiceRSSFeedURLbyGuid API to obtain service-related RSS news feed URLs for a particular space by specifying the space's GUID.

To retrieve the RSS news feed URL for a service using getServiceRSSFeedURLbyGuid, use the following:

String service_URL = client.getServiceRSSFeedURLbyGuid("groupspace_GUID",service_ID);

Where:

service_URL refers to the service parameter being retrieved

groupspace_GUID is a space GUID. For information about obtaining a space's GUID, see Section 57.2.5.3.4, "Retrieving Space Metadata."

service_ID is the ID of the service for which you want to retrieve the RSS news feed URL. Use one of the following: ANNOUNCEMENT_SERVICE_ID, DISCUSSION_FORUM_SERVICE_ID, RECENT_ACTIVITY_SERVICE_ID, or LIST_SERVICE_ID.

Example 57-29 retrieves the recent activity RSS feed URL for a space with the GUID: s2201fa44_b441_4bdd_950e_47307f6f9800:

Example 57-29 Retrieving the RSS Feed URL for Recent Activity

String recentActivityURL = client.getServiceRSSFeedURLbyGuid("s2201fa44_b441_4bdd_950e_47307f6f9800", GroupSpaceWSClient.RECENT_ACTIVITY_SERVICE_ID);

57.2.6 How to Handle Exceptions Raised by Spaces APIs

The GroupSpaceWSException class provides APIs for handling exceptions raised by Spaces APIs.

Table 57-5 Spaces APIs in the GroupSpaceWSException Class

API Class Description

getLocalizedMessage

GroupSpaceWSException

Composes the localized error message.

printStackTrace

GroupSpaceWSException

Prints the exception and its back trace to the standard error stream.


This section includes the following subsections:

57.2.6.1 Providing Localized Error Messages

Sometimes you may find that the default error messages provided by the APIs are not specific enough for your particular application. In these cases you can provide your own error messages.

Use the getLocalizedMessage API to compose application-specific error messages.

Example 57-30 shows a servlet that includes code to create a space. If any exceptions are raised during the creation process, a localized message is printed.

Example 57-30 Printing a Localized Error Message

servlet1.java

doGet()
{
...
  print("<b>Output</b>");
  try
    {
      GroupSpaceWSClient client = new GroupSpaceWSClient(context);
      client.createGroupSpace("Databases", "Databases, "A community for people interested in databases", "databases, oracle", "CommunityofInterest");
      print("Successfully created space");
    }
  catch(GroupSpaceWSException ex)
    {
      if(ex instanceof GroupSpaceNameNullException)
        print(ex.getLocalizedMessage());
      else if (ex instanceof GroupSpaceDescNullException)
        print(ex.getLocalizedMessage());
    }
...
}

57.2.6.2 Listing the Error Stack

For debugging purposes, it is often useful to see which errors ultimately led to the failure of a particular operation to discover the underlying cause of the problem. Use the printStackTrace API to list all the errors that caused a particular exception.

Example 57-31 prints the exception and all the errors leading up to it.

Example 57-31 Listing the Error Stack

servlet1.java

doGet()
{
...
  print("<b>Output</b>");
  try
    {
      GroupSpaceWSClient client = new GroupSpaceWSClient(context);
      client.createGroupSpace("Databases", "Databases", "A community for people interested in databases", "databases, oracle", "CommunityofInterest");
      print("Successfully created space");
    }
  catch(GroupSpaceWSException ex)
    {
      ex.printStackTrace();
    }
...
}

57.2.7 Finding More Information on Spaces APIs

API Reference Documentation

For detailed syntax information for each API, see the Oracle Fusion Middleware Java API Reference for Oracle WebCenter Portal.


57.2.8 Troubleshooting Issues with Spaces APIs

If you experience issues with Spaces APIs, check the following:

  1. Verify that the credential stores for both WebCenter Portal: Spaces and the client WebCenter Portal application are configured correctly.

    See "Updating the Credential Stores" in the Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

  2. Ensure the Spaces client context is set up correctly in the WebCenter Portal application by checking the alias passed in the context.setRecipientKeyAlias. The alias should be the public key alias of the producer (Spaces), for example:

    GroupspaceWSContext context = new GroupspaceWSContext();context.setEndPoint(endPointUrl);context.setRecipientKeyAlias("orakey");
    groupspaceInternalWSClient = new GroupspaceWSInternalClient(context);
    
    

    In this example, the public key alias of the producer is orakey. See also, Setting Up the Spaces Client Context.

  3. Check that keystores exist at both ends of the connection. For example:

    - webcenter.jks (copied to Spaces end)

    - clientapi.jks (copied to WebCenter Portal application end)

    For example, the following commands generate clientapi.jks and webcenter.jks for a simple topology:

    keytool -genkeypair -keyalg RSA -dname "cn=spaces,dc=example,dc=com" -alias orakey -keypass mypassword -keystore webcenter.jks -storepass mypassword -validity 360keytool -exportcert -v -alias orakey -keystore webcenter.jks 
    -storepass mypassword -rfc -file webcenter.cerkeytool -importcert -alias webservice_client_api  
    -file webcenter.cer -keystore clientapi.jks -storepass mypasswordkeytool -genkeypair -keyalg RSA -dname "cn=clientapi,dc=example,dc=com" 
    -alias clientapi -keypass mypassword -keystore clientapi.jks -storepass mypassword -validity 360
    keytool -exportcert -v -alias clientapi -keystore clientapi.jks -storepass mypassword -rfc -file clientapi.cer
    keytool -importcert -alias clientapi -file clientapi.cer -keystore webcenter.jks -storepass mypassword
    

    See also, Securing the Connection Between the Application and Spaces.

57.3 Using the WebCenter Portal: Spaces REST APIs

Oracle WebCenter Portal: Spaces provides REST APIs to support various space-related operations. You can use REST APIs to perform the following actions in the Spaces application:

  • List all spaces in the Spaces application, list public spaces only, list joined spaces, list discoverable spaces.

  • View details for a single space.

  • List members of a space.

  • List role assignments for space members.

  • List custom attributes defined for a space.

  • View the details of a particular custom attribute.

  • View and add lists for a space.

  • View and update list items (rows) for a list.

  • View, update, and delete list item details (columns).

This section describes the WebCenter Portal: Spaces REST APIs. It contains the following subsections:

For an introduction to the REST APIs, see Section 54, "Using Oracle WebCenter Portal REST APIs."

57.3.1 WebCenter Portal: Spaces Entry Point

Each REST service has a link element within the Resource Index that provides the entry point for that service. To find the entry point for WebCenter Portal: Spaces REST APIs, find the link element with a resourceType of:

urn:oracle:webcenter:spaces

The corresponding href or template element provides the URI entry point which returns a list of spaces accessible to the current user. The client sends HTTP requests to this entry point to work with WebCenter Portal: Spaces.

For more information about the Resource Index, see Section 54.5.1, "The Resource Index".

For more information about resource types, see Section 54.5.2.1, "Resource Type."

57.3.2 WebCenter Portal: Spaces Resource Type Taxonomy

When the client has identified the entry point, it can then navigate through the resource type taxonomy to perform the required operations. For more information about the individual resource types, see the appropriate section in Section 57.3.4, "WebCenter Portal: Spaces Resource Types".

The taxonomy for WebCenter Portal: Spaces is:

urn:oracle:webcenter:spaces
urn:oracle:webcenter:spaces:siteresources
urn:oracle:webcenter:spaces:resource:templates
urn:oracle:webcenter:spaces:resource:template
   urn:oracle:webcenter:space:attributes
   urn:oracle:webcenter:space:roles
   urn:oracle:webcenter:space
   urn:oracle:webcenter:space:icon
   urn:oracle:webcenter:space:members
      urn:oracle:webcenter:space:member
   urn:oracle:webcenter:space:attributes
      urn:oracle:webcenter:space:attribute
   urn:oracle:webcenter:space:roles
      urn:oracle:webcenter:space:role
   urn:oracle:webcenter:space:resourceindex
      urn:oracle:webcenter:space:lists
      urn:oracle:webcenter:space:list
         urn:oracle:webcenter:space:rows
            urn:oracle:webcenter:space:row
         urn:oracle:webcenter:space:columns
            urn:oracle:webcenter:space:column

57.3.3 WebCenter Portal: Spaces Security Considerations

There are no specific security considerations for this service. For general security considerations, see Section 54.8, "Security Considerations for WebCenter Portal REST APIs."

57.3.4 WebCenter Portal: Spaces Resource Types

The following sections provide all the information you need to know about each resource type:

57.3.4.1 urn:oracle:webcenter:spaces

Use this resource type to identify the URI to use to view a list of spaces (GET) and to create a new space (POST). The response from a GET operation includes each space, and each space includes links to operate on that space.

Navigation Paths to spaces

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces

Supported Methods for spaces

The following methods are supported by this resource:

  • GET – Returns information on all spaces.

    • request - body: None

    • query parameters:

      • startIndex

      • itemsPerPage

      • projection - Allowed values are summary and details. The default is summary.

      • visibility - Determines which spaces are included in the list: all spaces, public spaces only, joined spaces, or discoverable spaces.

        Allowed values are all, public, joined and discoverable. The default is joined.

    • response - body: collection of spaces

  • POST – Creates a new space.

    • request - body: space

      <space>
         <name>aName</name>
         <description>aDescription</description>
         <templateName>aTemplate</templateName>
      </space>
      

      Note:

      The templateName parameter must be a valid template name returned from urn:oracle:webcenter:spaces:resource:templates. For example, the default template names are:

      Basic
      CommunityOfInterest
      ProjectSpace
      

Resource Types Linked to from spaces

Table 57-6 lists the resource types that the client can link to from this resource.

Table 57-6 Related Resource Types for urn:oracle:webcenter:spaces

rel resourceType

self

urn:oracle:webcenter:spaces

 

urn:oracle:webcenter:space


57.3.4.2 urn:oracle:webcenter:siteresources

Use this resource type to identify the URI to use to retrieve a list of Site Resources (GET). The response from a GET operation includes a list of all site resource names. The main purpose of retrieving site resource names is to know what all resources is available in the space.

The returned list includes the resources that are found under the Resources tab of the Spaces application Administration console, and include resources like page templates, navigations, skins, page styles, and others.

Navigation Paths to siteresources

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      siteresources

Supported Methods for siteresources

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters:

      • startIndex

      • itemsPerPage

      • projection - Allowed values are summary and details. The default is summary.

      • q - You can search on siteResourceType and/or seeded.

        If siteResourceType is specified, the query returns all site resource names for that site resource type.

        The format is: q = siteResourceType:equals:<value>

        The possible values are siteTemplate, contentPresenter, pageStyle, navigation, resourceCatalog, or skin.

        Example:

        q=siteResourceType:equals:siteTemplate

        If seeded is specified as true, the query returns all site resources names that are seeded.

        The format is: q=seeded:equals:<value>.

        The possible values are true or false.

        Example:

        q=seeded:equals:false (returns all non-seeded resources)

        If a non-seeded site template is required, the query is:

        siteResourceType:equals:siteTemplate;seeded:equals:false

    • response - body: list of all site resource names for all the site resource types for the specified scope. If the siteResourceType is specified, returns all the site resource names for that site resource type.

Read-Only Elements for siteresources

Table 57-7 lists the read-only elements for siteresources.

Table 57-7 Read-Only Elements for urn:oracle:webcenter:siteresources

Element Type Description

guid

String

Global ID for the site resource.

displayName

String

Name of the site resource as displayed to end users.

name

String

The name of the site resource. A complete list of all of the site resources, by name, is provided in Table 57-8.

description

String

Description of the site resource.

siteResourceType

String

Type of the site resource.

scopeName

String

Either the name of the space or the default scope at the application level.

seeded

Boolean

Set to true if the site resource is pre-populated.

visible

Boolean

Set to true if this site resource is visible in the user interface.

createdBy

String

Username of the user who created the site resource.

createdDate

Date

Date the site resource was created.

modifiedBy

String

Username of the user who updated the site resource.

modifiedDate

Date

Date on which the site resource was modified.

version

String

Version of the site resource.


List of Site Resources by Name

Table 57-8 lists the site resources by name, and gives the type and description of each resource.

Table 57-8 List of Site Resources by Name Provided by WebCenter Portal

Name Type Description

Accordion View

contentPresenter

Displays multiple content items in an accordion (stacked) format. When an item is clicked, the other items collapse to reveal the selected items details.

Blank

pageStyle

Blank Page Style

Blank

taskFlowStyle

Blank

Blog

pageStyle

Blog Page Style

Bulleted View

contentPresenter

Displays multiple content items as a bulleted list. Only content items are displayed; sub-folders are omitted.

Bulleted with Folder Label View

contentPresenter

Displays multiple content items as a bulleted list. The name of the parent folder is displayed as a label above the list. Only content items are displayed; sub-folders are omitted.

Carousel View

contentPresenter

Displays multiple content items in a carousel format. Users browse through items using a slider bar from left to right.

Default Document Details View

contentPresenter

Displays detailed information about a single content item, including creation date, modification date, creator, user who last modified the item, and path, as well as any comments.

Default Home Space Catalog

resourceCatalog

Used when editing application-level pages and task flows in your Home space.

Default List Item View

contentPresenter

Used by a single content item view to display a single line with an icon and item name as a link that either displays or downloads the item when clicked.

Default List Item View for Folders

contentPresenter

Used by a single content item view to display a single line with an icon and item name as a link that either displays or downloads the item when clicked.

Default Page Template Catalog

resourceCatalog

Used when editing page templates

Default Space Catalog

resourceCatalog

Used when editing space-level pages and task flows

Default View

contentPresenter

Displays a single content item. Image and HTML content items are displayed directly in the browser. For other item types, details are displayed, along with a link to download the associated file.

Fusion FX

skin

 

Fusion Side Navigation

siteTemplate

Stretching Page Layout with Side Navigation. Use Fusion FX Skin.

Fusion Top Navigation

siteTemplate

Stretching Page Layout with Top Navigation. Use Fusion FX Skin.

Home Page

pageStyle

Home Page style

Icon View

contentPresenter

Displays multiple content items in a tiled format, using icons to represent sub-folders and content items.

Left Narrow

pageStyle

Left Narrow Page Style

List View

contentPresenter

Displays multiple content items in a simple list.

List with Details Panel View

contentPresenter

Displays multiple content items in a list on the left. A panel on the right displays the details of a selected item.

Parameter Form

taskFlowStyle

 

Right Narrow

pageStyle

 

Sortable Table View

contentPresenter

Displays multiple content items in a sortable table that includes the document name, date created, and date modified.

Html Page

pageStyle

HTML page style

Spaces Default Navigation Model

navigation

Navigation model that displays current pages in a space

Spaces Navigation with Blogs/Wikis/Lists Submenus

navigation

Navigation model that displays current pages and submenus for blogs, wikis and lists

Stretch

taskFlowStyle

 

Tabbed View

contentPresenter

Displays multiple content items as tabs. Clicking a tab displays the associated item's details.

Three Column

pageStyle

Three Column Page Style

Web Page

pageStyle

Web Page Page Style

Public-Pages Template

siteTemplate

Default Page Template for Public pages.

Collaborative with Top Navigation

siteTemplate

Page Template for Collaborative Spaces, with Flowing Layout and Top Navigation. Use WebCenter Spaces FX Skin.

Spaces FX

skin

WebCenter Spaces FX Skin

Portal-centric with Top Navigation

siteTemplate

Page Template for Portal-centric Sites, with Flowing Layout and Top Navigation. Use WebCenter Spaces FX Skin.

Side Navigation

siteTemplate

Flowing Page Layout with Side Navigation. Use WebCenter Spaces FX Skin.

Side Navigation (Stretch)

siteTemplate

Stretching Page Layout with Side Navigation. Use WebCenter Spaces FX Skin.

Top Navigation

siteTemplate

Default Page Template with Flowing Layout and Top Navigation. Use WebCenter Spaces FX Skin.

Top Navigation (Stretch)

siteTemplate

Stretching Page Layout with Top Navigation. Use WebCenter Spaces FX Skin.

Wiki

pageStyle

Wiki Page Style


Writeable Elements for siteresources

There are no writeable elements for this resource.

57.3.4.3 urn:oracle:webcenter:spaces:resource:templates

Use this resource type to identify the URI to use to retrieve a list of space templates (GET). The response from a GET operation includes a list of template names. The main purpose of retrieving template names is to provide a value for the templateName parameter for the create space command.

Navigation Paths to templates

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      resource
         templates

Supported Methods for templates

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters:

      • startIndex

      • projection - Allowed values are summary and details. The default is summary.

      • q - Performs searches.

      • itemsPerPage

    • response - body: list of template names

For more information about query parameters, see Section 54.5.2.5, "Templates."

Resource Types Linked to from templates

Table 57-9 lists the resource types that the client can link to from this resource.

Table 57-9 Related Resource Types for urn:oracle:webcenter:spaces

rel resourceType

self

urn:oracle:webcenter:spaces:resource:templates


57.3.4.4 urn:oracle:webcenter:space

Use this resource type to identify the URI to use to view details for a single space (GET), create a nested space (POST), or delete a space (DELETE). The response from a GET operation includes the specific space identified by the URI, including its creator, description, members, and custom attributes.

Note:

The response from this resource also includes a link to the space's message board.

Navigation Paths to space

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      space

Supported Methods for space

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters:

      • projection - Allowed values are summary, and details. The default is details. Choose summary to exclude member and custom attribute details.

    • response - body: Space

  • POST – Creates a new space that is a child of the named space (a subspace). This feature supports creating hierarchical or nested spaces.

    • request - body: Space

      <space>
         <name>FooSpace</name>
         <description>foobar</description>
         <templateName>CommunityOfInterest</templateName>
      </space>
      

      Note:

      The templateName parameter must be a valid template name returned from urn:oracle:webcenter:spaces:resource:templates. For example, the default template names are:

      Basic
      CommunityOfInterest
      ProjectSpace
      
  • DELETE – Deletes the named space.

    • request - body: None

      On delete, a 204 status code is returned whether or not the space existed.

For more information about query parameters, see Section 54.5.2.5, "Templates."

Writable Elements for space

Table 57-10 lists the writable elements for this resource.

Table 57-10 Writable Elements for urn:oracle:webcenter:space

Element Type Description

description

String

Description of the space.

name

String

Internal name for the space.

templateName

String

Must be a valid template name returned from urn:oracle:webcenter:spaces:resource:templates. For example, the default template names are:

Basic
CommunityOfInterest
ProjectSpace

Read-only Elements for space

Table 57-11 lists the read-only elements for this resource.

Table 57-11 Read-only Elements for urn:oracle:webcenter:space

Element Type Description

guid

String

Global ID for the space.

creator

String

ID of the user who created the space.

author

personReference

User information about the user who created the space, including GUID, ID, display name, and a link to the profile icon (same user as creator).

displayName

String

Name of the space as displayed to members.

iconUrl

String

Fully qualified URL for the space's icon image.

logoUrl

String

Relative URL for the space's logo image.

isOffline

Boolean

Indicates whether the space is offline or online.

isDiscoverable

Boolean

Specifies whether the space is discoverable.

isPublic

Boolean

Specifies whether the space is public.

keywords

String

Lists keywords for the space.

mailingList

String

Lists the mailing list email for the space if it has one.

parentDisplayName

String

Shows the parent display name if the space is a child space and has a parent. In this case, there will also be an isInheritFromParent boolean element that signifies whether the permissions of the parent space are inherited by the child space or not. Specifically, members of the parent space will be inherited.

serviceDataCopied

String

List of service ids whose data is to be copied to new spaces/templates when created based off this space.

defaultLanguage

String

The default language.

landingPage

String

URI to the space landing page if specified.

isTemplate

Boolean

Specifies whether or not this is a Template.

isUnsubscriptionApprovalRequired

Boolean

Specifies whether or not you need approval to unsubscribe.

isPublishRss

Boolean

Specifies whether or not the space has an associated RSS feed.

isClosed

Boolean

Specifies whether or not the space is closed.

isBlockAllAccess

Boolean

Specifies whether or not all access to space is blocked (not sure how this happens).

members

String

Returns the members element for the space.

attributes

String

Returns the attributes element for the space.


Resource Types Linked to from space

Table 57-12 lists the resource types that the client can link to from this resource.

57.3.4.5 urn:oracle:webcenter:space:resourceindex

Use this resource type to identify the URI to use to view the Spaces resource index.

Navigation Paths to resourceindex

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      space

Supported Methods for resourceindex

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters: None

    • response - body: resource index

Resource Types Linked to From resourceindex

Table 57-13 lists the resource types that the client can link to from this resource.

Table 57-13 Related Resource Types for urn:oracle:webcenter:space:resourceindex

rel resourceType
 

urn:oracle:webcenter:space:lists

 

urn:oracle:webcenter:discussions:forum


57.3.4.6 urn:oracle:webcenter:space:roles

Use this resource type to get a list of roles for the named space (GET). The results returned from this call can be used to add a new member to a space with urn:oracle:webcenter:space:members.

Navigation Paths to space:roles

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      space
         roles

Supported Methods for roles

The following methods are supported by this resource:

  • GET – Returns the list of roles assigned to the named space.

Resource Types Linked to from roles

Table 57-14 lists the resource types that the client can link to from this resource.

Table 57-14 Related Resource Types for urn:oracle:webcenter:spaces:roles

rel resourceType

self

urn:oracle:webcenter:space:roles

 

urn:oracle:webcenter:space:role

urn:oracle:webcenter:parent

urn:oracle:webcenter:space


57.3.4.7 urn:oracle:webcenter:space:role

Use this resource type to get a named role (GET).

Use this resource type to get a list of roles for the named space (GET). The results returned from this call can be used to add a new member to a space with urn:oracle:webcenter:space:members.

Navigation Paths to space:role

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      space
         role

Supported Methods for role

The following methods are supported by this resource:

  • GET – Returns the named role.

Resource Types Linked to from role

Table 57-14 lists the resource types that the client can link to from this resource.

Table 57-15 Related Resource Types for urn:oracle:webcenter:spaces:roles

rel resourceType

self

urn:oracle:webcenter:space:role

 

urn:oracle:webcenter:space:role

urn:oracle:webcenter:parent

urn:oracle:webcenter:space


57.3.4.8 urn:oracle:webcenter:space:icon

Use this resource type to get the icon used for the named space (GET).

Note:

This resource type is used for space references, not for space responses. This resource can be used anywhere a space is referenced, like in an activity stream or a space event.

Navigation Paths to space:icon

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      space
         icon

Supported Methods for icon

The following methods are supported by this resource:

  • GET – Returns the icon used for the named space.

Resource Types Linked to from icon

Table 57-14 lists the resource types that the client can link to from this resource.

Table 57-16 Related Resource Types for urn:oracle:webcenter:spaces:roles

rel resourceType

self

urn:oracle:webcenter:space:icon

urn:oracle:webcenter:parent

urn:oracle:webcenter:space


57.3.4.9 urn:oracle:webcenter:space:attributes

Use this resource type to identify the URI to use to view a list of custom attributes defined for a space (GET). The response from a GET operation includes each custom attribute for the space, and each attribute includes links to operate on that attribute. Also use this resource type to add custom attributes to a space (POST).

Navigation Paths to attributes

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      space
         attributes

Supported Methods for attributes

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters: None

    • response - body: collection of attributes

  • POST – Adds a custom attribute to the named space.

    • request - body:

      <attribute>
         <name>anAttribute</name> 
         <value>aValue</value>
      </attribute>
      

Writeable Elements for attributes

Table 57-17 lists the writeable elements for this resource.

Table 57-17 Writeable Resources for space:attributes

Element Type Description

name

String

Attribute name.

value

String

Attribute value.


Resource Types Linked to From attributes

Table 57-18 lists the resource types that the client can link to from this resource.

Table 57-18 Related Resource Types for urn:oracle:webcenter:space:attributes

rel resourceType

self

urn:oracle:webcenter:space:attributes

 

urn:oracle:webcenter:space:attribute

urn:oracle:webcenter:parent

urn:oracle:webcenter:space


57.3.4.10 urn:oracle:webcenter:space:attribute

Use this resource type to identify the URI to use to view the name and value of single space attribute (GET). The response from a GET operation includes the specific attribute identified by the URI.

Navigation Paths to attribute

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      space
         attributes

Supported Methods for attribute

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters: None

    • response - body: attribute

Read-only Elements for attribute

Table 57-19 lists the read-only elements for this resource.

Table 57-19 Read-only Elements for urn:oracle:webcenter:space:attribute

Element Type Description

name

String

Name of the custom attribute.

description

String

Description of the custom attribute.

type

String

Data type of the custom attribute.

value

String

Value of the custom attribute.


Resource Types Linked to From attribute

Table 57-20 lists the resource types that the client can link to from this resource.

Table 57-20 Related Resource Types for urn:oracle:webcenter:space:attribute

rel resourceType

self

urn:oracle:webcenter:space:attribute

urn:oracle:webcenter:parent

urn:oracle:webcenter:space


57.3.4.11 urn:oracle:webcenter:space:members

Use this resource type to identify the URI to use to view a list of members for the space (GET). The response from a GET operation includes each member of the space, each member includes links to operate on that member.

Navigation Paths to members

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      space

Supported Methods for members

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters: None

    • response - body: collection of members

  • POST – Adds a member to the space.

    • request - body: member

    <member>
        <name>vicki</name>
        <role>Participant</role>
    </member>
    
  • DELETE – Removes the named member from the space. You can obtain the member guid with urn:oracle:webcenter:space:member.

    • request - body: None

    DELETE
    http://hostname:portnum/rest/api/spaces/spacename/members/member_guid
    

Writeable Elements of spaces:space:members

Table 57-21 Writeable Elements of spaces:space:members

Element Type Description

name

String

The member's name.

role

String

The member's role. Obtain this value from urn:oracle:webcenter:space:roles.


Resource Types Linked to From members

Table 57-22 lists the resource types that the client can link to from this resource.

Table 57-22 Related Resource Types for urn:oracle:webcenter:space:members

rel resourceType

self

urn:oracle:webcenter:space:members

 

urn:oracle:webcenter:space:member

urn:oracle:webcenter:parent

urn:oracle:webcenter:space


57.3.4.12 urn:oracle:webcenter:space:member

Use this resource type to identify the URI to use to view details for a space member and their current role assignments (GET). The response from a GET operation includes the specific member identified by the URI, including a hyperlink to the member's profile.

Navigation Paths to member

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      space
         members

Supported Methods for member

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters: None

    • response - body: member

Read-only Elements for member

Table 57-23 lists the read-only elements for this resource.

Table 57-23 Read-only Elements for urn:oracle:webcenter:space:member

Element Type Description

guid

String

Global ID for the space member.

name

String

User ID of the space member.

role

String

Role assigned to the member.

displayName

String

Display name of the member.


Resource Types Linked to From member

Table 57-24 lists the resource types that the client can link to from this resource.

Table 57-24 Related Resource Types for urn:oracle:webcenter:space:member

rel resourceType

self

urn:oracle:webcenter:space:member

 

urn:oracle:webcenter:people:person

urn:oracle:webcenter:people:icon

urn:oracle:webcenter:people:person


57.3.4.13 urn:oracle:webcenter:space:lists

Use this resource type to identify the URI to use to view (GET) and add (POST) lists for the space. The response from a GET operation includes each list in the space, and each list includes links used to operate on that list. The response from a POST operation includes the list that was created in this collection of lists and a link to operate on that list.

Navigation Paths to lists

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      resourceindex
      space
         lists

Supported Methods for lists

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters:

      • startIndex

      • itemsPerPage

      • q

        You can search on name, title, description, creator, created, modifier, and modified.

        For string type elements (that is, name, title, description, creator, and modifier), you can use the following supported operands: equals, not.equals, and contains. For example:

        q=name:contains:issues
        q=creator:equals:monty
        

        For date type elements (that is, created and modified), you can use the following supported operands: equals, not.equals, greater.than, greater.than.or.equals, less.than, less.than.or.equals. For example:

        q=created:greater.than:10-SEP-2009
        
      • projection - Allowed values are summary and details. The default is summary.

    • response - body: collection of lists

  • POST

    • request - body: list

    • response - body: list

For more information about query parameters, see Section 54.5.2.5, "Templates."

Resource Types Linked to From lists

Table 57-25 lists the resource types that the client can link to from this resource.

Table 57-25 Related Resource Types for urn:oracle:webcenter:space:lists

rel resourceType

self

urn:oracle:webcenter:space:lists

 

urn:oracle:webcenter:space:list


57.3.4.14 urn:oracle:webcenter:space:list

Use this resource type to identify the URI to use to view (GET), update (PUT), and delete (DELETE) a list belonging to a space. The response from a GET operation includes the specific list identified by the URI. The response from a PUT operation includes the modified version of the list identified by the URI. The response to a DELETE operation is a 204 status code.

Navigation Paths to list

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      resourceindex
         lists
             list

Supported Methods for list

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters: None

    • response - body: list

  • PUT

    • request - body: list

    • response - body: list

  • DELETE

    • request - body: None

    • response - body: None

Writable Elements for list

Table 57-26 lists the writable elements for this resource.

Table 57-26 Writable Elements for urn:oracle:webcenter:space:list

Element Type Required Constraints Description

name

String

Yes

1 or more characters

Name of the space list.

description

String

No

0 or more characters

Description of the list.

columns

urn:oracle:webcenter:space:list:columns

Yes

1 or more characters

Columns that make up the list.


Read-only Elements for list

Table 57-27 lists the read-only elements for this resource.

Table 57-27 Read-only Elements for urn:oracle:webcenter:list

Element Type Description

id

String

ID of the list.

name

String

Name of the list.

description

String

Description of the list.

scopeguid

String

Global ID of the parent space.

scopename

String

Name of the parent space.

creator

String

ID of the user that created the list.

author

personReference

User information about the user that created the list, including GUID, ID, display name, and a link to the profile icon (same user as creator).

created

Date

Date the list was created.

modifier

String

ID of the user that last modified the list.

modifiedByUser

personReference

User information about the user that last modified the list, including GUID, ID, display name, and a link to the profile icon (same user as modifier).

modified

Date

Date the list was last modified.

columns

String

Columns that make up the list.


Resource Types Linked to From list

Table 57-28 lists the resource types that the client can link to from this resource.

Table 57-28 Related Resource Types for urn:oracle:webcenter:space:list

rel resourceType

self

urn:oracle:webcenter:space:list

 

urn:oracle:webcenter:space:list:rows

 

urn:oracle:webcenter:space:list:columns


57.3.4.15 urn:oracle:webcenter:space:list:rows

Use this resource type to identify the URI to use to view (GET) and create (POST) list rows (list items). The response from a GET operation includes each row in this list, each row includes links to operate on that row. The response from a POST operation includes the row that was created in this list and a link to operate on that row.

Navigation Paths to rows

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      resourceindex
        lists
           list
              rows 

Supported Methods for rows

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters:

      • startIndex

      • itemsPerPage

      • q

        You can search on name, title, description, creator, created, modifier, and modified.

        For string type elements (that is, name, title, description, creator, and modifier), you can use the following supported operands: equals, not.equals, contains, and starts.with. For example:

        q=name:contains:issues
        q=creator:equals:monty
        

        For date type elements (that is, created and modified), you can use the following supported operands: equals, not.equals, greater.than, greater.than.or.equals, less.than, less.than.or.equals. For example:

        q=created:greater.than:10-SEP-2009
        
    • response - body: collection of rows

  • POST

    • request - body: row

    • response - body: row

For more information about query parameters, see Section 54.5.2.5, "Templates."

Resource Types Linked to From rows

Table 57-29 lists the resource types that the client can link to from this resource.

Table 57-29 Related Resource Types for urn:oracle:webcenter:space:list:rows

rel resourceType

self

urn:oracle:webcenter:space:list:rows

parent

urn:oracle:webcenter:space:list

 

urn:oracle:webcenter:space:list:row


57.3.4.16 urn:oracle:webcenter:space:list:row

Use this resource type to identify the URI to use to view (GET), update (PUT), and delete (DELETE) a list row (list item). The response to a GET operation includes the specific row identified by the URI. The response to a PUT operation includes the modified version of the row identified by the URI. The response to a DELETE operation is a 204 status code.

Navigation Paths to row

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      resourceindex
         lists
            list 
              rows
                 row

Supported Methods for row

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters: None

    • response - body: row

  • PUT

    • request - body: row

    • response - body: row

  • DELETE

    • request - body: None

    • response - body: None

For more information about query parameters, see Section 54.5.2.5, "Templates."

Writable Elements for row

Table 57-30 lists the writable elements for this resource.

Table 57-30 Writable Elements for urn:oracle:webcenter:space:list:row

Element Type Required Constraints Description

columns.column.id

String

Yes

1 or more characters

ID of the column (containing list item detail).

columns.column.name

String

No

1 or more characters

Name of the column.

columns.column.value

String

Yes

1 or more characters

Value of the column.


Read-only Elements for row

Table 57-31 lists the read-only elements for this resource.

Table 57-31 Read-only Elements for urn:oracle:webcenter:space:list:row

Element Type Description

id

String

ID of the row (list item).

listId

String

ID of the list.

scope

String

Global ID of the parent space.

creator

String

ID of the user that created the list item.

author

personReference

User information about the user that created the list item, including GUID, ID, display name, and a link to the profile icon (same user as creator).

created

Date

Date the list item was created.

modifier

String

ID of the user that last modified the list item.

modifiedByUser

personReference

User information about the user that last modified the list item, including GUID, ID, display name, and a link to the profile icon (same user as modifier).

modified

Date

Date the list item was last modified.


Resource Types Linked to From row

Table 57-32 lists the resource types that the client can link to from this resource.

Table 57-32 Related Resource Types for urn:oracle:webcenter:space:list:row

rel resourceType

self

urn:oracle:webcenter:space:list:row


57.3.4.17 urn:oracle:webcenter:space:list:columns

Use this resource type to identify the URI to use to view (GET) and create (POST) list columns (list item detail). The response from a GET operation includes each column in this list, each column includes link to operate on that column. The response from a POST operation includes the column created in this list and a link to operate on that column.

Navigation Paths to columns

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      resourceindex
        lists
           list
              columns

Supported Methods for columns

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters:

      • startIndex

      • itemsPerPage

      • q - Search parameters STARTS.WITH and END.WITH are not supported.

    • response - body: collection of columns

  • POST

    • request - body: column

    • response - body: column

For more information about query parameters, see Section 54.5.2.5, "Templates."

Resource Types Linked to From columns

Table 57-33 lists the resource types that the client can link to from this resource.

Table 57-33 Related Resource Types for urn:oracle:webcenter:space:list:columns

rel resourceType

self

urn:oracle:webcenter:space:list:columns

parent

urn:oracle:webcenter:space:list

 

urn:oracle:webcenter:space:list:column


57.3.4.18 urn:oracle:webcenter:space:list:column

Use this resource type to identify the URI to use to view (GET), update (PUT), and delete (DELETE) a list column (list item detail). The response from a GET operation includes the specific column identified by the URI. The response from a PUT operation includes the modified version of the column identified by the URI. The response from a DELETE operation is a 204 status code.

Navigation Paths to column

This section shows how the client can navigate through the hypermedia to access this resource:

resourceindex
   spaces
      resourceindex
         lists
            list
               columns
                 column

Supported Methods for column

The following methods are supported by this resource:

  • GET

    • request - body: None

    • query parameters: None

    • response - body: column

  • PUT

    • request - body: column

    • response - body: column

  • DELETE

    • request - body: None

    • response - body: None

Writable Elements for column

Table 57-34 lists the writable elements for this resource.

Table 57-34 Writable Elements for urn:oracle:webcenter:space:list:column

Element Type Required Constraints Description

columns.column.id

String

Yes

1 or more characters

ID of the column (containing list item detail).

columns.column.name

String

No

1 or more characters

Name of the column.

columns.column.value

String

Yes

1 or more characters

Value of the column.


Read-only Elements for column

Table 57-35 lists the read-only elements for this resource.

Table 57-35 Read-only Elements for urn:oracle:webcenter:space:list:column

Element Type Description

id

String

ID of the column (list item detail).


Resource Types Linked to From column

Table 57-28 lists the resource types that the client can link to from this resource.

Table 57-36 Related Resource Types for urn:oracle:webcenter:space:list:column

rel resourceType

self

urn:oracle:webcenter:space:list:column


57.4 Exposing Enterprise Applications in Spaces

You can expose various enterprise applications inside the Spaces application, including:

  • WebCenter Portal applications—applications developed using the WebCenter Portal: Framework.

  • Other portals in the WebCenter Suite—for example, Oracle Portal.

  • Oracle Applications Unlimited products—for example, E-Business Suite, Siebel, PeopleSoft, and JDEdwards.

  • Other custom applications—applications developed using non-Oracle platforms.

Technologies such as WSRP, Oracle JSF Portlet Bridge, ADF task flows, and WebCenter Portal support for external applications, enable the Spaces application to consume and present application data in a unified way. The following sections tell you how.

This section includes the following subsections:

57.4.1 Exposing WebCenter Portal Applications in Spaces

You can expose WebCenter Portal: Framework applications, built using the WebCenter Portal: Framework, as portlets and task flows in the Spaces application:

  • Portlets: Web components that are deployed inside a container and generate dynamic content. For more information, see Chapter 58, "Overview of Portlets."

  • Oracle JSF Portlet Bridge: A technology that enables you to easily expose existing ADF applications and task flows as JSR 168 portlets. For more information, see Chapter 59, "Creating Portlets with the Oracle JSF Portlet Bridge."

  • Task flows: ADF navigational components that define the transition between states and activities using call methods on managed beans, evaluating an EL expression, and so on. For more information see, "Getting Started with ADF Task Flows" in the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

57.4.2 Exposing Oracle Applications in Spaces

You can expose Oracle Applications Unlimited products, for example, E-Business Suite, Siebel, PeopleSoft, and JDEdwards, in the Spaces application, using:

  • Web services and ADF: Enterprise applications like Siebel expose various web service interfaces. You can leverage these web service interfaces to build data controls, ADF task flows, and portlets that can be consumed in Spaces.

  • Prebuilt portlets: Enterprise applications such as Oracle E-Business Suite ship portlets out of the box that you can register with Spaces and consume in the same way as any other portlet.

57.4.3 Exposing Non-Oracle Applications in Spaces

You can expose Web applications developed using non-Oracle platforms in the Spaces application, as follows:

  • Support for external applications: External applications enable credential stores to pass mapped user identities to web applications that require their own authentication. For more information, see "Registering External Applications" in the Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal and "Working with External Applications" in the Oracle Fusion Middleware User's Guide for Oracle WebCenter Portal: Spaces.

  • Composer iframe-level integration: The Composer Web Page page style and component displays any Web page content, including pages from applications built using a different Web technology. For more information, see "Adding a View into Another Web Page to a Page" in the Oracle Fusion Middleware User's Guide for Oracle WebCenter Portal: Spaces.

  • Raw HTML markup injection in Composer: The Composer HTML Markup layout component injects HTML or JavaScript snippets into pages in Spaces. You can use this component to display content from an external source. For more information see "Adding Markup, Such as HTML, JavaScript, and EL, to a Page" in the Oracle Fusion Middleware User's Guide for Oracle WebCenter Portal: Spaces.

  • OmniPortlet: A portlet that publishes data from various data sources using a variety of layouts. For more information, see Chapter 65, "Creating Portlets with OmniPortlet."