BAMDataServiceAdmin dsAdmin) {
if (data.getServiceName() != null && data.getOperationName() != null && data.getActivityId() != null) {
if (!data.getOperationName().equals("") && !data.getServiceName().equals("")
&& !data.getActivityId().equals("")) {
ServiceDO service;
OperationDO operation;
ActivityDO activity;
MessageDataDO messageDataDO;
if (data.getTimeStamp() != null) {
if (data.getTimeStamp().equals("")) {
messageDataDO = new MessageDataDO(BAMCalendar.getInstance(Calendar.getInstance())
.getBAMTimestamp(), data.getRemoteIPAddress(), data.getMessageDirection(),
data.getMessageBody(), data.getRequestMessageStatus(),
data.getResponseMessageStatus());
} else {
messageDataDO = new MessageDataDO(data.getTimeStamp(), data.getRemoteIPAddress(),
data.getMessageDirection(), data.getMessageBody(),
data.getRequestMessageStatus(), data.getResponseMessageStatus());
}
} else {
messageDataDO = new MessageDataDO(
BAMCalendar.getInstance(Calendar.getInstance()).getBAMTimestamp(),
data.getRemoteIPAddress(), data.getMessageDirection(), data.getMessageBody(),
data.getRequestMessageStatus(), data.getResponseMessageStatus());
}
// When first time message comes to a system, service, operation
// need to be
// added.
try {
ServerDO serverDO = dsAdmin.getServer(data.getServerName());
if (serverDO != null) {
messageDataDO.setServerId(serverDO.getId());
} else {
log.error("Server is not in the Database" + data.getServerName());
}
} catch (BAMException e) {
log.error("Could not retrieve server from DB ", e);
}
try {
if (dsAdmin.getService(messageDataDO.getServerId(), data.getServiceName()) == null) {
service = new ServiceDO();
ServerDO serverDO = dsAdmin.getServer(data.getServerName());
if (serverDO != null) {
service.setServerID(serverDO.getId());
service.setName(data.getServiceName());
dsAdmin.addService(service);
messageDataDO.setServiceId(dsAdmin.getService(messageDataDO.getServerId(),
data.getServiceName()).getId());
}
} else {
messageDataDO.setServiceId(dsAdmin.getService(messageDataDO.getServerId(),
data.getServiceName()).getId());
}
} catch (BAMException e) {
log.error("Could not retrieve service from DB ", e);
}
try {
if (dsAdmin.getOperation(messageDataDO.getServiceId(), data.getOperationName()) == null) {
operation = new OperationDO();
ServiceDO serviceDO = dsAdmin.getService(messageDataDO.getServerId(), data.getServiceName());
if (serviceDO != null) {
operation.setServiceID(serviceDO.getId());
operation.setName(data.getOperationName());
dsAdmin.addOperation(operation);
messageDataDO.setOperationId(dsAdmin.getOperation(messageDataDO.getServiceId(),
data.getOperationName()).getOperationID());
} else {
serviceDO = new ServiceDO();
serviceDO.setServerID(messageDataDO.getServerId());
serviceDO.setName(data.getServiceName());
dsAdmin.addService(serviceDO);
messageDataDO.setServiceId(dsAdmin.getService(messageDataDO.getServerId(),
data.getServiceName()).getId());