tenantId = Integer.parseInt(tenant);
}
if (serverNameElement != null) { // ServerName element is mandatory
String serverName = serverNameElement.getText().trim();
ServerDO server = null;
try {
// TODO get the serverID from the cache instead
server = dsAdmin.getServer(serverName, tenantId,
BAMConstants.SERVER_TYPE_EVENTING,BAMConstants.MEDIATION_STAT_TYPE);
// check whether server is already in DB else add it(client side BAM).
// TODO: Broken if no server is already present. Remove username and password as mandatory fields
if (server == null) {
if (serverName != null || serverName.length() > 0) {
server = new ServerDO();
server.setServerURL(serverName);
server.setTenantID(tenantId);
server.setServerType(BAMConstants.SERVER_TYPE_GENERIC);
server.setCategory(BAMConstants.GENERIC_STAT_TYPE);
BAMPersistenceManager.getPersistenceManager(BAMUtil.getRegistry()).addMonitoredServer(server);
}
server = dsAdmin.getServer(serverName, tenantId,
BAMConstants.SERVER_TYPE_GENERIC,BAMConstants.GENERIC_STAT_TYPE);
}
} catch (Exception e) {
log.error("Error persisting information about the new server: " + serverName
+ " from eventing message messagereceiver " + e.getLocalizedMessage(), e);
}
// for all the key/value pairs in a single message, we will use the same time stamp
Calendar calendar = Calendar.getInstance();
QName dataQname = new QName(SERVER_USER_DEFINED_DATA_NS_URI, ELEMENT_NAME_DATA);
Iterator dataElements = serverUserDefinedDataElement.getChildrenWithName(dataQname);
while (dataElements.hasNext()) {
OMElement dataElement = (OMElement) dataElements.next();
// pick the key
QName keyQname = new QName(SERVER_USER_DEFINED_DATA_NS_URI, ELEMENT_NAME_KEY);
OMElement keyElement = dataElement.getFirstChildWithName(keyQname);
if (keyElement == null) {
messageFaultReason = "Key element not found in the message";
throw new BAMException(messageFaultReason);
}
// pick the value
QName valueQname = new QName(SERVER_USER_DEFINED_DATA_NS_URI, ELEMENT_NAME_VALUE);
OMElement valueElement = dataElement.getFirstChildWithName(valueQname);
if (valueElement == null) {
messageFaultReason = "Value element not found in the message";
throw new BAMException(messageFaultReason);
}
ServerUserDefinedDO serverUserDefinedDO = new ServerUserDefinedDO(server.getId() ,serverName,
calendar, keyElement.getText(), valueElement.getText());
try {
dsAdmin.addServerUserDefinedData(serverUserDefinedDO);
} catch (BAMException e) {