/**
* @see org.araneaframework.servlet.PopupWindowContext#open(java.lang.String, org.araneaframework.servlet.support.PopupWindowProperties, org.araneaframework.Message)
*/
public String open(String id, PopupWindowProperties properties, Message startMessage) throws Exception {
ThreadContext currentThreadCtx = ((ThreadContext)getEnvironment().getEntry(ThreadContext.class));
// append random suffix for requested service id
String rndString = RandomStringUtils.random(8, false, true);
id = (id != null) ? new StringBuffer(id).append(rndString).toString() : rndString;
BeanFactory factory = (BeanFactory) getEnvironment().getEntry(BeanFactory.class);
// TODO:: some better way in framework?
Service service = (Service) factory.getBean("servletServiceAdapterComponent");
currentThreadCtx.addService(id, service);
if (startMessage != null)
startMessage.send(null, service);
//add new, not yet opened popup to popup and popup properties maps