String messageObjectName = getProperties().getProperty(MESSAGE_OBJECT_NAME_PROP);
String producerName = getProperties().getProperty(PRODUCER_NAME_PROP);
String xml = INITIAL_XML;
try {
// get the baseline (current value of 'xml' variable)
JmsEnterpriseObject baselineJeo = (JmsEnterpriseObject)getAppConfig().getObject(messageObjectName);
baselineJeo.getXmlEnterpriseObject().getEnterpriseFields().setIgnoreValidation(true);
baselineJeo.getXmlEnterpriseObject().buildObjectFromXmlString(getBaselineXml());
// where to get the newdata (the form data)?
JmsEnterpriseObject newJeo = (JmsEnterpriseObject)getAppConfig().getObject(messageObjectName);
// use the UPortalFormDataLayout manager to build the new version of the object.
newJeo.getXmlEnterpriseObject().getEnterpriseFields().setIgnoreValidation(true);
newJeo.getXmlEnterpriseObject().buildObjectFromInput(getChannelRuntimeData());
newJeo.getXmlEnterpriseObject().setBaseline(baselineJeo.getXmlEnterpriseObject());
LogService.log(LogService.INFO, "[GeneralUpdateHandler] built " + messageObjectName + " from form data, performing Update...");
// todo - use producer pool
// todo - map producer name based on message object since different message
// objects may be going against different sources.
newJeo.update((PointToPointProducer)getAppConfig().getObject(producerName));
LogService.log(LogService.INFO, "[GeneralUpdateHandler] " + messageObjectName + " update is done.");
xml = INITIAL_XML;
xml += newJeo.getXmlEnterpriseObject().toXmlString();
}
catch (Exception openeaiExc) {
LogService.log(LogService.ERROR, openeaiExc);
openeaiExc.printStackTrace();
throw new UportalFormHandlerException("[GeneralUpdateHandler] Error performing update action", openeaiExc);