Sun Java System Portal Server 7.1 Update 1 Community Guide

Chapter 10 Installing and Configuring SharedEvents and SharedTasks Portlets

This chapter includes instructions for installing and configuring the SharedEvents and SharedTasks portlets manually after the Sun Java System Portal Server software installation.

This section contains the following:

Configuring Back-end Services for the Portlets

The SharedEvents and SharedTasks portlets in the Community Sample require certain back-end services to be setup and configured prior to installing and configuring the portlet. These back-end services are Sun JavaTM System Calendar Server and Sun Delegated Administration software. You can use an existing deployment or, choose to perform a fresh installation and configuration of these services. This section provides instructions for configuring the back-end services for these portlets.

The Calendar Server, Delegated Administration software, and Sun Java System Portal Server software must use the same Sun Java System Directory Server. Mail service should be enabled for the organization.

This section contains the following:

ProcedureTo Install and Configure the Back-end Services

  1. See detailed documentation for Calendar Server and Delegated Administrator software for instructions on installing and configuring these software.

    Documentation for:

ProcedureTo Enable Mail Service to the Organization Using Delegated Administration CLI

  1. See Chapter 5, Command Line Utilities, in Sun Java System Delegated Administrator 6.5 Administration Guide and run the commadmin command.

    For example, type /opt/SUNWcomm/bin/commadmin domain modify -D admin -n domain -w passwd -S mail -H preferred-mailhost -d domain to add mail LDAP attribute to the user.

ProcedureTo Enable Proxy Authentication in Calendar Server

  1. Edit CS-config-directory/ics.conf file (where CS-config-file is by default /etc/opt/SUNWics5/config/ directory) and change the value of service.http.allowadminproxy property to yes.

  2. Restart the Calendar Server.

ProcedureTo Partition the Proxy Users in a Separate Organization

A proxy user is created for each community to manage that community's shared calendar. Follow the instructions in this section to avoid populating the manually created Portal Server users' organization.

  1. Create a new parallel organization with a unique domain name to the organization containing the community users through Delegated Administration.

    For example, create an organization called proxyusers.com.

  2. Set the DA_DEFAULT_DOMAIN to the proxy user's newly created organization domain name.

    For example, set the DA_DEFAULT_DOMAIN to proxyusers.com. If the portlets have already been deployed, update the relevant SSO adapters through the Portal Server management console and set the DA_DEFAULT_DOMAIN to the proxy users organization domain name.

Gathering Information for the Portlets

Before deploying the portlets, gather the following information:

UGRoot Suffix

This is the server/Group Root suffix of the Directory Server. This information is provided while running the commds_setup.pl script.

CSUGRoot Suffix

This is the UGRoot suffix under which the calendar users are created by default. It is under this suffix, the calendar admin user (calmaster) is created. It is important to choose this suffix appropriately such that the calendar admin user is able to proxy-authenticate other calendar users in other organizations. It is recommended that this suffix be the same as UGRoot Suffix. For the portlets, this specifies the value of Base Distinguished Node configuration input while configuring Calendar Server.

DA Default Domain

This is the DNS domain name of the default organization used by Delegated Administration software (for provisioning users by default). For the portlets, this specifies the value of Default Domain configuration input while configuring Delegated Administration software.

DA Default Organization DN

The Organization distinguished node will be the LDAP subtree under which all the users and groups that belong to the Delegated Administration software Default Domain are located. Note that the distinguished node must be located under the UGRoot Suffix. For the portlets, this specifies the value of Organization Distinguished Node for the Default domain configuration input while configuring Delegated Administration software.

Deploying the Portlets

ProcedureTo Install and Configure the Portlets

Before You Begin

Configure the back-end services and gather the required information.

  1. Create the portlet WAR file.

    To create the WAR file:


    Note –

    After Portal Server software has been installed, the portlet applications will be under the PortalServer-base/portletapps/portlet directory. If Portal Server has been configured, the portlet application will be in PortalServer-DataDir/portals/portal-ID/portletapps/portlet directory (where portlet refers to SharedEvents and SharedTasks portlets).


    1. Edit the tokens.properties file to specify customizable parameters for the portlet.

      See Tokens for SharedEvents Portlet and Tokens for SharedTasks Portlet for more information.

    2. Run ant customize.

  2. Load SSO Adapter Template.

    Change directories to PortalServer-DataDir/portals/portal-ID/portletapps/portlet/build/conf directory and type ant -f config.xml to load the SSO Adapter configuration.

  3. Deploy the Portlets.

    1. Create a file containing the password of the amadmin user. For example, type, echo mypassword >/tmp/ampasswd.

    2. Type PortalServer-base/bin/psadmin deploy-portlet -u amadmin -f /tmp/ampassword -p portal-ID -i myInstance -g --userinfofile FULL-PATH-TO-userInfoMapping.properties FULL-PATH-TO-portlet.war-FILE.

    3. Restart the container.

  4. Add the Display Profile data to the templates.

    The SharedEvents and SharedTasks portlets must be added to the Community templates to show up in new communities (created after the application has been installed). The template files are located at PortalServer-DataDir/portals/portal-ID/communitytemplates/ by default. The display profile is in the member.xml file in the template's directory.

    For the portlets, do the following:

    1. Remove the comment delimiters around the following lines to add your new channel to the available ones.

      <Available>
      ....
      <Reference value="%COMMUNITY_CONTAINER%/Sharedevents"/>
      <Reference value="%COMMUNITY_CONTAINER%/Sharedtasks"/>
      </Available>
    2. Remove the comment delimiters around the following lines to add your new channel to the selected ones.

      <Selected>
      ....
      <Reference value="%COMMUNITY_CONTAINER%/Sharedevents"/>
      <Reference value="%COMMUNITY_CONTAINER%/Sharedtasks"/>
      </Selected>
    3. Add availableDatabase in search channel.

      To add, remove the comment delimiters around the following lines:

      <Channel name="Search" provider="CommunitySearchProvider">
      	<Properties>
      		...
      		 <String name="%COMMUNITY_SEARCH_DB_PREFIX%_sharedevents_%PORTAL_ID%.%COMMUNITY_ID%" 
      		  value="Events"/>
      		 <String name="%COMMUNITY_SEARCH_DB_PREFIX%_sharedtasks_%PORTAL_ID%.%COMMUNITY_ID%" 
      		  value="Tasks"/>
      		 ...
      		</Collection>
    4. Remove the comment delimiters around the following lines to add the channel definition.

      For SharedEvents portlet:


      <Channels>
      ....
      <Channel name="Sharedevents" provider="__Portlet__sharedevents.sharedevents">
      	<Properties>
      		<String name="title" value="Community Calendar Events"/>
      		<String name="description" value="Community Events Portlet"/>
      		<String name="width" value="thick"/>
      		<String name="__Portlet__ps.communityId" value="|DUMMY"/>
      		<String name="__Portlet__community.calendar.config" value="|DUMMY"/>
      		<String name="__Portlet__ps.searchserverurl" value="|%COMMUNITY_SEARCH_URL%"/>
      		<String name="__Portlet__ps.searchdb" 
      		 value="|%COMMUNITY_SEARCH_DB_PREFIX%_sharedevents_%PORTAL_ID%.%COMMUNITY_ID%"/>
      		<String name="__Portlet__ps.visibleurl" 
      		 value="?%COMMUNITY_CONTAINER%.setSelected=%COMMUNITY_CONTAINER%/Sharedevents"/>
      		<Collection name="__Portlet__PreferenceProperties">
      			<Collection name="default">
      				<String name="ps.communityId" value="|DUMMY"/>
      				<String name="community.calendar.config" value="|DUMMY"/>
      				<String name="ps.searchserverurl" value="|%COMMUNITY_SEARCH_URL%"/>
      				<String name="ps.searchdb" 
      				 value="|%COMMUNITY_SEARCH_DB_PREFIX%_sharedevents_%PORTAL_ID%.%COMMUNITY_ID%"/>
      				<String name="ps.visibleurl" 
      				 value="?%COMMUNITY_CONTAINER%.setSelected=%COMMUNITY_CONTAINER%/Sharedevents"/>
      			</Collection>
      			<Collection name="isReadOnly">
      				<Boolean name="ps.communityId" value="false"/>
      				<Boolean name="community.calendar.config" value="false"/>
      				<Boolean name="ps.searchserverurl" value="false"/>
      				<Boolean name="ps.searchdb" value="false"/>
      				<Boolean name="ps.visibleurl" value="false"/>
      			</Collection>
      		</Collection>
      		<Collection  name="userInfoDescriptions">
      			<Collection name="timezone">
      				<String name="en-US" value="Preferred User Time Zone"/>
      			</Collection>
      		</Collection>
      	</Properties>
      </Channel>
      </Channels>

      For SharedTasks portlet:

      <Channels>
      ....
      <Channel name="Sharedtasks" provider="_Portlet__sharedtasks.sharedtasks">
      	<Properties>
      		<String name="title" value="Community Calendar Tasks"/>
      		<String name="description" value="Community Tasks Portlet"/>
      		<String name="width" value="thick"/>
      		<String name="__Portlet__ps.communityId" value="|DUMMY"/>
      		<String name="__Portlet__community.calendar.config" value="|DUMMY"/>
      		<String name="__Portlet__ps.searchserverurl" value="|%COMMUNITY_SEARCH_URL%"/>
      		<String name="__Portlet__ps.searchdb" 
      		 value="|%COMMUNITY_SEARCH_DB_PREFIX%_sharedtasks_%PORTAL_ID%.%COMMUNITY_ID%"/>
      		<String name="__Portlet__ps.visibleurl" 
      		 value="?%COMMUNITY_CONTAINER%.setSelected=%COMMUNITY_CONTAINER%/Sharedtasks"/>
      		<Collection name="__Portlet__PreferenceProperties">
      			<Collection name="default">
      				<String name="ps.communityId" value="|DUMMY"/>
      				<String name="community.calendar.config" value="|DUMMY"/>
      				<String name="ps.searchserverurl" value="|%COMMUNITY_SEARCH_URL%"/>
      				<String name="ps.searchdb" 
      				 value="|%COMMUNITY_SEARCH_DB_PREFIX%_sharedtasks_%PORTAL_ID%.%COMMUNITY_ID%"/>
      				<String name="ps.visibleurl" 
      				 value="?%COMMUNITY_CONTAINER%.setSelected=%COMMUNITY_CONTAINER%/Sharedtasks"/>
      			</Collection>
      			<Collection name="isReadOnly">
      				<Boolean name="ps.communityId" value="false"/>
      				<Boolean name="community.calendar.config" value="false"/>
      				<Boolean name="ps.searchserverurl" value="false"/>
      				<Boolean name="ps.searchdb" value="false"/>
      				<Boolean name="ps.visibleurl" value="false"/>
      			</Collection>
      		</Collection>
      		<Collection  name="userInfoDescriptions">
      			<Collection name="timezone">
      				<String name="en-US" value="Preferred User Time Zone"/>
      			</Collection>
      		</Collection>
      	</Properties>
      </Channel>
      </Channels>
  5. Add SharedEvents and SharedTasks as searchable databases in the CommunityPortlet.

    1. Log in to Portal Server management console and select the portal where the portlets were deployed.

    2. Choose a community enabled OrgDN (such as CommunitySample or DeveloperSample).

    3. Select the Manage Container and Channels link and select the DP XML Tree view (from the View Type pull down list).

    4. Click on the CommunityPortlet and add sharedevents and sharedtasks to the availableDatabases preference.

  6. Restart the web container.

  7. Login and verify that the service channel is displayed on your desktop.

    1. Go to http://HOST:PORT/portal/dt and select Community Sample.

    2. Login as test/test and create a new community. Then log out.

    3. Re-login to the Community Sample portal as test/test.

      The SharedEvents and/or SharedTasks portlets will be displayed.

Tokens for the Portlets

This sections contains the following:

Tokens for SharedEvents Portlet

Shared Events defines the following tokens in the PortalServer-DataDir/portals/portal-ID/portletapps/sharedevents/tokens.properties file:

SSOADAPTER_TEMPLATE_NAME

Default value is CTY-SHARED-EVENTS.

Specifies the name of SSO Adapter name. This SSO Adapter contains the required configuration information for the portlet functioning. This SSO Adapter is per-portlet application; that is, the name should be different for each deployed portlet instance.

For example, HACKERS_COMMUNITY_EVENTS

SSOADAPTER_TEMPLATE_DESC

Default value is CTY-SHARED-EVENTS.

Contains the description for SSO Meta Adapter. This needs to be the same as SSOADAPTER_TEMPLATE_NAME for the template to be editable from the Access Manager console.

For example, HACKERS_COMMUNITY_EVENTS.

SSOADAPTER_ORGANIZATION_DN

Specifies the distinguished node of organization under which the SSO Adapter is loaded. The user retrieves the SSOAdapter from the Organization that the user belongs to.

For example, o=CommunitySample,dc=siroe,dc=example,dc=com.

DA_SERVER_HOST

Specifies the fully qualified name of the system where Delegated Administration server is running.

For example, daserver.blue.planet.com.

DA_SERVER_PORT

Default value is 80.

Specifies the port number of the Delegated Administration server.

For example, 80.

DA_DOMAIN_SEPARATOR

Default value is @.

Specifies the user ID and Domain Separater character.

For example, @.

DA_PROXY_ADMIN_USER_ID

Specifies the admin user for Delegated Administration that can be used to perform proxy authentication of users.

For example, admin.

DA_PROXY_ADMIN_USER_PASSWORD

Specifies the password for DA_ADMIN_USER_ID.

For example, abc123.

DA_DEFAULT_DOMAIN

Specifies the DNS Domain Name (sunPreferredDomain) of the organization where the CTY-PROXY-USER would be provisioned. The CTY-PROXY-USERs can be created in a different organization than the community users, in which case it should be manageable by Delegated Administrator.

For example, blue.planet.com.

IS_HOSTED_DOMAIN_ENV

Default value is false.

Specifies whether the portlet should use a hosted domains environment. For example, false


Note –

If the Delegated Administration server and Calendar Server are configured to use hosted domains setup, the value needs to be set to true.


CALENDAR_SERVER_HOST

Specifies the fully qualified name of the system where Calendar Server is running.

For example, calendar.blue.planet.com.

CALENDAR_SERVER_PORT

Default value is 3080.

Specifies the port Number of Calendar Server.

For example, 3080.

CALENDAR_PROXY_ADMIN_UID

Specifies the admin user for Calendar Server that can be used to perform proxy authentication of users.

For example, calmaster.

CALENDAR_PROXY_ADMIN_PASSWORD

Specifies the password for CALENDAR_PROXY_ADMIN_UID.

For example, calmaster.

AUTO_DELETE_CTY_PROXY_USER_CAL

Default value is false.

Specifies whether the portlet should delete the CTY-PROXY-USER when a community is deleted.

For example, false.

CREATE_EVENTS_IN_CTY_MEMBERS_CAL

Default value is false.

Specifies whether the portlet should create the calendar event in all the member's community calendars whenever a community event is created.

For example, false.

AM_ADMINISTRATOR_DN

Specifies the distinguished name of the administrator for Sun Java System Access Manager software.

For example, uid=amAdmin,ou=People,dc=blue,dc=planet,dc=com

AM_ADMINISTRATOR_PASSWORD

Specifies the password for AM_ADMINISTRATOR_DN.

For example, abc123.

AMADMIN_COMMAND

Default value is /opt/SUNWam/bin/amadmin.

Specifies the fully qualified path name to the amadmin CLI of Access Manager.

For example, /opt/sun/am/bin/amadmin.

Tokens for SharedTasks Portlet

Shared Tasks defines the following tokens in the PortalServer-DataDir/portals/portal-ID/portletapps/sharedtasks/tokens.properties file:

SSOADAPTER_TEMPLATE_NAME

Default value is CTY-SHARED-TASKS.

Specifies the name of SSO Adapter name. This SSO Adapter contains the required configuration information for the portlet functioning. This SSO Adapter is per-portlet application; that is, the name should be different for each deployed portlet instance.

For example, HACKERS_COMMUNITY_TASKS

SSOADAPTER_TEMPLATE_DESC

Default value is CTY-SHARED-TASKS.

Contains the description for SSO Meta Adapter. This needs to be the same as SSOADAPTER_TEMPLATE_NAME for the template to be editable from the management console.

For example, HACKERS_COMMUNITY_TASKS.

SSOADAPTER_ORGANIZATION_DN

Specifies the distinguished node of organization under which the SSO Adapter is loaded. The user retrieves the SSOAdapter from the Organization the user belongs to.

For example, o=CommunitySample,dc=siroe,dc=example,dc=com.

DA_SERVER_HOST

Specifies the fully qualified name of the system where Delegated Administration server is running.

For example, daserver.blue.planet.com.

DA_SERVER_PORT

Default value is 80.

Specifies the port number of the Delegated Administration server.

For example, 80.

DA_DOMAIN_SEPARATOR

Default value is @.

Specifies the user ID and Domain Separater character.

For example, @.

DA_PROXY_ADMIN_USER_ID

Specifies the admin user for Delegated Administration that can be used to perform proxy authentication of users.

For example, admin.

DA_PROXY_ADMIN_USER_PASSWORD

Specifies the password for DA_ADMIN_USER_ID.

For example, abc123.

DA_DEFAULT_DOMAIN

Specifies the DNS Domain Name (sunPreferredDomain) of the organization where the CTY-PROXY-USER would be provisioned. The CTY-PROXY-USERs can be created in a different organization than the community users, in which case it should be manageable by Delegated Administrator.

For example, blue.planet.com.

IS_HOSTED_DOMAIN_ENV

Default value is false.

Specifies whether the portlet should use a hosted domains environment.

For example, false


Note –

If the Delegated Administration server and Calendar Server are configured to use hosted domains setup, the value needs to be set to true.


CALENDAR_SERVER_HOST

Specifies the fully qualified name of the system where Calendar Server is running.

For example, calendar.blue.planet.com.

CALENDAR_SERVER_PORT

Default value is 3080.

Specifies the port Number of Calendar Server.

For example, 3080.

CALENDAR_PROXY_ADMIN_UID

Specifies the admin user for Calendar Server that can be used to perform proxy authentication of users.

For example, calmaster.

CALENDAR_PROXY_ADMIN_PASSWORD

Specifies the password for CALENDAR_PROXY_ADMIN_UID.

For example, calmaster.

AUTO_DELETE_CTY_PROXY_USER_CAL

Default value is false.

Specifies whether the portlet should delete the CTY-PROXY-USER when a community is deleted. The CTY-PROXY-USER is the community proxy user, a user created by the Shared Tasks portlet

For example, false.

CREATE_EVENTS_IN_CTY_MEMBERS_CAL

Default value is false.

Specifies whether the portlet should create the calendar task in all the member's community calendars whenever a community task is created.

For example, false.

AM_ADMINISTRATOR_DN

Specifies the distinguished name of the administrator for Sun Java System Access Manager software.

For example, uid=amAdmin,ou=People,dc=blue,dc=planet,dc=com

AM_ADMINISTRATOR_PASSWORD

Specifies the password for AM_ADMINISTRATOR_DN.

For example, abc123.

AMADMIN_COMMAND

Default value is /opt/SUNWam/bin/amadmin.

Specifies the fully qualified path name to the amadmin CLI of Access Manager.

For example, /opt/sun/am/bin/amadmin.