in src/utils/ActiveMQAnalysisEngineService.cpp [760:828]
bool AMQListener::validateRequest(const TextMessage * textMessage, string & errmsg) {
bool valid = true;
if ( textMessage->getCMSReplyTo() == NULL)
LOGWARN("AMQListener::validateRequest() JMSReplyTo is not set. " );
if (textMessage->getCMSReplyTo() == NULL &&
!textMessage->propertyExists("MessageFrom") ) {
errmsg = "Reply to destination not set.";
return false;
}
if (!textMessage->propertyExists("Command") ) {
errmsg = "Required property 'Command' is not set.";
LOGERROR("AMQListener::validateRequest " + errmsg);
valid = false;
} else {
int command = textMessage->getIntProperty("Command");
if (command != PROCESS_CAS_COMMAND &&
command != GET_META_COMMAND &&
command != CPC_COMMAND) {
stringstream str;
str << "Unexpected value for 'Command' " << command;
errmsg = str.str();
LOGERROR("AMQListener::validateRequest " + errmsg);
valid=false;
} else if (command == CPC_COMMAND) {
if (iv_pEngine == NULL) {
errmsg = "CPC request received but AnalysisEngine not available.";
LOGERROR("AMQListener::validateRequest() " + errmsg);
valid = false;
}
} else if (command == PROCESS_CAS_COMMAND) {
if (iv_pCas == NULL || iv_pEngine == NULL) {
errmsg = "Process Cas request but an AnalysisEngine and CAS not available.";
LOGERROR("AMQListener::validateRequest() " + errmsg);
valid = false;
}
if (!textMessage->propertyExists("Payload") ) {
errmsg = "Required property 'Payload' is not set.";
LOGERROR("AMQListener::validateRequest " + errmsg);
valid = false;
} else {
int payload = textMessage->getIntProperty("Payload");
if (payload != XCAS_PAYLOAD && payload != XMI_PAYLOAD) {
stringstream str;
str << "Unexpected value for 'Payload' " << payload;
errmsg = str.str();
LOGERROR("AMQListener::validateRequest " + errmsg);
valid=false;
}
try {
string text = textMessage->getText().c_str();
if (text.length() == 0) {
errmsg = "There is no payload data. Nothing to process.";
LOGERROR("AMQListener::validateRequest " + errmsg);
valid = false;
}
} catch (CMSException& e) {
errmsg = e.getMessage();
LOGERROR("AMQListener::validateRequest " + e.getMessage());
valid = false;
}
}
}
}
return valid;
}