...
Code Block |
---|
title | GroupsManagerPortlet.java |
---|
borderStyle | solid |
---|
|
if ( ServerPortletUtil.isServantMode(request) ) {
IGroupMember[] groupMembers = (IGroupMember[]) ServerPortletUtil.getAttribute(request);
...
}
|
Portlet servant locator
The portlet servant locator provides the client-portlet with the reference to IPortletServant instance, internally getting the portlet definition from the definition registry by a functional name and keeping track of client changes to the servant in the portlet session. The client-portlet obtains a reference to the locator by calling the static method of ServantLocatorAccessor utility-class.
Running portlet servant from another portlet
...
Servant interfaces
Code Block |
---|
title | ServantLocatorAccessor.java |
---|
borderStyle | solid |
---|
|
/**
* Provides methods for accessing the portlet servant locator
*/
public final class ServantLocatorAccessor {
/**
* Creates a new IPortletServantLocator instance that will be used to locate portlet servants.
**/
public static IPortletServantLocator getPortletServantLocator(PortletContext portletContext) {
return ((PortletContextWrapper)portletContext).getPortletServantLocator();
}
private ServantLocatorAccessor() { }
}
|
Code Block |
---|
title | IPortletServantLocator.java |
---|
borderStyle | solid |
---|
|
/**
* Provides methods for locating portlet servants provided by uPortal.
*/
public interface IPortletServantLocator {
/**
* Gets a new IPortletServant instance for running the specified portlet as a servant.
* @param functionalPortletName is a portlet functional name given during portlet publising
* @param request a PortletRequest
**/
public IPortletServant locate(String functionalPortletName,PortletRequest request);
}
|
Code Block |
---|
title | IPortletServant.java |
---|
borderStyle | solid |
---|
|
/**
* The PortletServant interface is a uPortal wrapper around a JSR-168 portlet that implements
* the Portlet Servant mode. It provides methods for delegating rendering and action processing
* to the servant portlet, exchanging attribute values with the Client Portlet, to watch for it's completion and to get the results of the servant's
* operation.
*/
public interface IPortletServant {
/**
* Returns the servant ID given by the portlet servant locator.
* @return a <code>String</code> value
*/
public String getId();
/** Allows the Client Portlet to ascertain if the Servant has accomplished the requested task
* (Note that the way which a certain task is requested is not specified by this interface;
* normally it will be documented by a particular IPortletServant and require some particular
* configuration paramaters used to initialize the servant)
* @return boolean value
*/
public boolean isComplete(PortletRequest request);
public Object getServantData(PortletRequest request);
public void setServantData(PortletRequest request,Object value);
public void render(RenderRequest request, RenderResponse response) throws PortletException, IOException;
public void processAction(ActionRequest request, ActionResponse response) throws PortletException, java.io.IOException;
}
|
...