| Oracle® Workspaces Web Services Application Developer's Guide 10g Release 1 (10.1.2.2) Part Number B28207-01 |
|
|
View PDF |
The Workspaces service allows you to create, update, and remove resources and manage users of a workspace.
The following sample retrieves users from a specified group in Oracle Internet Directory and adds them as members of a workspace. Each newly added member is given writer role. Afterwards, the sample adds a calendar, library, discussions, and inbox resource to the same workspace. An exception is thrown if any of these resources already exist.
Example 7-1 WorkspacesServiceSample.java
package oracle.sample.workspaces.ws;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import oracle.workspaces.ws.AuthenticationService;
import oracle.workspaces.ws.HomeService;
import oracle.workspaces.ws.UsersService;
import oracle.workspaces.ws.WorkspacesService;
import oracle.workspaces.ws.WorkspacesServiceServiceLocator;
import oracle.workspaces.ws.WorkspacesServiceSoapBindingStub;
import oracle.workspaces.ws.beans.CalendarResourceDefinition;
import oracle.workspaces.ws.beans.DiscussionResourceDefinition;
import oracle.workspaces.ws.beans.InboxResourceDefinition;
import oracle.workspaces.ws.beans.LibraryResourceDefinition;
import oracle.workspaces.ws.beans.Member;
import oracle.workspaces.ws.beans.User;
import oracle.workspaces.ws.beans.WorkspaceItem;
import oracle.workspaces.ws.exceptions.CwWSException;
import org.apache.axis.transport.http.HTTPConstants;
public class WorkspacesServiceSample
{
public static WorkspacesService configureWorkspacesService(
String szAuthCookie) throws ServiceException
{
WorkspacesServiceServiceLocator wssl =
new WorkspacesServiceServiceLocator();
WorkspacesService wService = wssl.getWorkspacesService();
((WorkspacesServiceSoapBindingStub)wService).setMaintainSession(true);
((javax.xml.rpc.Stub)wService).
_setProperty(HTTPConstants.HEADER_COOKIE,szAuthCookie);
return wService;
}
public static void createResources(
WorkspacesService szWorkspacesService,
String szWorkspaceID)
{
// This method attempts to add a calendar, discussions,
// library, and inbox resource in the specified workspace.
// An exception is thrown if any of these resources exist
// in the workspace.
System.out.println("Adding calendar resource");
CalendarResourceDefinition rDef = new CalendarResourceDefinition();
rDef.setDescription("Calendar resource");
rDef.setName("Calendar1");
try {
// Create calendar resource
szWorkspacesService.createCalendarResource(szWorkspaceID, rDef);
System.out.println("Added calendar resource");
} catch (CwWSException e) {
System.out.println("CwWSException caught while adding " +
"Calendar resource: "
+ e.getErrorMessage());
} catch (RemoteException re) {
System.out.println("RemoteException caught while " +
"adding Calendar resource: "
+ re.toString());
}
try {
// Create discussion resource
System.out.println("Adding discussions resource");
DiscussionResourceDefinition dDef = new DiscussionResourceDefinition();
dDef.setDescription("Discussion resource");
dDef.setName("Discussion1");
szWorkspacesService.createDiscussionResource(szWorkspaceID, dDef);
System.out.println("Added discussion resource");
} catch (CwWSException e2) {
System.out.println("CwWSException caught while adding "
+ "Discussion resource: "
+ e2.getErrorMessage());
} catch (RemoteException re2) {
System.out.println("RemoteException caught while adding " +
"Discussion resource: "
+ re2.toString());
}
try {
// Create library resource
System.out.println("Adding library resource");
LibraryResourceDefinition libDef = new LibraryResourceDefinition();
libDef.setDescription("Library resource");
libDef.setName("Library1");
libDef.setMappedFolderName("FolderLibrary1");
szWorkspacesService.createLibraryResource(szWorkspaceID, libDef);
System.out.println("Added library resource");
} catch (CwWSException e3)
{
System.out.println("CwWSException caught while adding " +
"Library resource: "
+ e3.getErrorMessage());
} catch (RemoteException re3) {
System.out.println("RemoteException caught while adding " +
"Library resource: "
+ re3.toString());
}
try
{
// Create inbox resource
System.out.println("Adding inbox resource");
InboxResourceDefinition iDef = new InboxResourceDefinition();
iDef.setName("My Inbox");
iDef.setEmailInboundPolicy("NONE");
iDef.setEmailSubscriptionFormat(
"My message posted to <a href='${inbox-url}'>Inbox</a> " +
"in workspace <a href='${workspace-url}'>" +
"${workspace-display-name}</a>)</p><BR>${msg-body}" +
"<BR><a href='${workspaces-home-url}'>");
iDef.setEmailSubscriptionPolicy("disabled");
szWorkspacesService.createEmailResource(szWorkspaceID, iDef);
System.out.println("Added inbox resource");
} catch (CwWSException e4)
{
System.out.println("CwWSException caught while adding " +
"inbox resource: "
+ e4.getErrorMessage());
} catch (RemoteException re4) {
System.out.println("RemoteException caught while adding " +
"inbox resource: "
+ re4.toString());
}
}
public static Member[] addMembersToWorkspace(
WorkspacesService szWorkspacesService,
String szWorkspaceID,
User[] szUsersToBeAdded,
String[] szRoles) throws CwWSException, RemoteException
{
int numberOfUsers = szUsersToBeAdded.length;
Member[] myMembers = new Member[numberOfUsers];
// Create a member from each user
for (int i = 0; i < numberOfUsers; i++)
{
Member currentMember = new Member();
currentMember.setMemberRoleType(szRoles);
currentMember.setUser(szUsersToBeAdded[i]);
myMembers[i] = currentMember;
}
// Add the members to the workspace
szWorkspacesService.addMembers(szWorkspaceID, myMembers);
System.out.println("Added members");
return myMembers;
}
public static void main(String[] args)
{
try {
// Get authentication cookie
//
// Ensure that the user has been provisioned for Oracle
// Mail; Oracle Discussions requires this.
AuthenticationService myAuthenticationService =
AuthenticationSample.configureAuthenticationService(
"rg4",
"welcome1");
String authCookie = AuthenticationSample.getAuthenticationCookie
(myAuthenticationService);
System.out.println("Retrieved authentication cookie : " + authCookie);
// Get WorkspacesService and set authentication cookie
WorkspacesService myWorkspacesService =
WorkspacesServiceSample.configureWorkspacesService(authCookie);
// Get UsersService and set authentication cookie
UsersService myUsersService =
UsersServiceSample.configureUsersService(authCookie);
// Retrieve HomeService and set authentication cookie
HomeService myHomeService =
HomeServiceSample.configureHomeService(authCookie);
// Create new workspace (or retrieve it if it already exists)
WorkspaceItem myWorkspace =
HomeServiceSample.createOrRetrieveWorkspace(
myHomeService,
"NewWorkspace",
"My New Workspace",
"Description of My New Workspace",
"WRITER",
"ENABLED");
System.out.println("Retrieved or created workspace");
// Retrieve Oracle Collaboration Suite users
// from Oracle Internet Directory from
// the specified group DN
User[] myUsers = UsersServiceSample.getUsersFromGroupDN(
myUsersService,
"cn=raymond_group,cn=Groups,dc=us,dc=oracle,dc=com");
System.out.println("Retrieved users");
// Make the users members of the workspace and give each
// of them writer role
WorkspacesServiceSample.addMembersToWorkspace(
myWorkspacesService,
myWorkspace.getWorkspaceUid(),
myUsers,
new String[]{"WRITER"});
System.out.println("Added members to the workspace");
// Create resources
WorkspacesServiceSample.createResources(
myWorkspacesService,
myWorkspace.getWorkspaceUid());
System.out.println("Added resources");
myAuthenticationService.logout();
} catch (CwWSException cwwse)
{
System.out.println("CwWSException caught: " + cwwse.getMessage());
} catch (Exception e)
{
System.out.println("Exception caught: " + e.toString());
}
}
}