if (this.configurationFile != null) {
loadConfig();
}
Map result;
PortalService service = null;
try {
service = (PortalService)this.manager.lookup(PortalService.ROLE);
PortalManager portalManager = null;
try {
portalManager = (PortalManager) this.manager.lookup(PortalManager.ROLE);
portalManager.process();
} finally {
this.manager.release(portalManager);
}
final Request request = ObjectModelHelper.getRequest(objectModel);
final Session session = request.getSession(false);
final List events = new ArrayList();
// is the history invoked?
final String historyValue = request.getParameter(this.historyParameterName);
if ( historyValue != null && session != null) {
// get the history
final List history = (List)session.getAttribute("portal-history");
if ( history != null ) {
final int index = Integer.parseInt(historyValue);
final List state = (List)history.get(index);
if ( state != null ) {
final Iterator iter = state.iterator();
while ( iter.hasNext() ) {
Mapping m = (Mapping)iter.next();
events.add(m.getEvent(service, null));
}
while (history.size() > index ) {
history.remove(history.size()-1);
}
}
}
}
Enumeration enumeration = request.getParameterNames();
while (enumeration.hasMoreElements()) {
String name = (String)enumeration.nextElement();
String value = request.getParameter(name);
Mapping m = (Mapping) this.eventMap.get(name);
if ( m != null ) {
events.add(m.getEvent(service, value));
}
}
String uri = service.getComponentManager().getLinkService().getLinkURI(events);
result = new HashMap();
result.put("uri", uri.substring(uri.indexOf('?')+1));
} catch (ServiceException ce) {
throw new ProcessingException("Unable to lookup portal service.", ce);