You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2014/01/04 01:46:30 UTC
[2/3] git commit: Extracting the event message from CEP message in
delegator(with no prperties)
Extracting the event message from CEP message in delegator(with no prperties)
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/89d4fd8c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/89d4fd8c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/89d4fd8c
Branch: refs/heads/master
Commit: 89d4fd8cb414ad39730cede522c11c881f28ec8c
Parents: b7c8f86
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Sat Jan 4 06:16:29 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Sat Jan 4 06:16:29 2014 +0530
----------------------------------------------------------------------
.../stat/HealthStatEventMessageDelegator.java | 74 +++++++++++++++++---
1 file changed, 65 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/89d4fd8c/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventMessageDelegator.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventMessageDelegator.java
index 9938331..f2a9bc8 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventMessageDelegator.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventMessageDelegator.java
@@ -23,9 +23,6 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.messaging.message.processor.MessageProcessorChain;
import org.apache.stratos.messaging.message.processor.health.stat.HealthStatMessageProcessorChain;
-import org.apache.stratos.messaging.message.processor.instance.notifier.InstanceNotifierMessageProcessorChain;
-import org.apache.stratos.messaging.message.receiver.instance.notifier.InstanceNotifierEventMessageQueue;
-import org.apache.stratos.messaging.util.Constants;
import javax.jms.TextMessage;
@@ -59,13 +56,18 @@ public class HealthStatEventMessageDelegator implements Runnable {
try {
TextMessage message = HealthStatEventMessageQueue.getInstance().take();
- // Retrieve the header
- //TODO get the type from json since this is sent by CEP
- String type = message.getStringProperty(Constants.EVENT_CLASS_NAME);
+ String messageText = message.getText();
+ if (log.isDebugEnabled()) {
+ log.debug("Health event message received: [message] " + messageText);
+ }
+ EventMessage eventMessage = jsonToEventMessage(messageText);
+ if(eventMessage == null){
+ log.error("Error occurred while extracting message");
+ continue;
+ }
+ String type = eventMessage.getEventName();
+ String json = eventMessage.getMessage();
- // Retrieve the actual message
- //TODO get the 'message' from full json message
- String json = message.getText();
if (log.isDebugEnabled()) {
log.debug(String.format("Instance notifier event message received from queue: %s", type));
}
@@ -92,4 +94,58 @@ public class HealthStatEventMessageDelegator implements Runnable {
public void terminate() {
terminated = true;
}
+
+
+ public EventMessage jsonToEventMessage(String json) {
+
+ EventMessage event = new EventMessage();
+ String message;
+
+ //split the message to 3 parts using ':' first is class name, second contains the text 'message' and the third contains
+ //message
+ String[] MessageParts = json.split(":", 3);
+
+ String eventType = MessageParts[0].trim();
+ eventType = eventType.substring(eventType.indexOf("\"") + 1, eventType.lastIndexOf("\""));
+
+ event.setEventName(eventType);
+ String messageTag = MessageParts[1];
+ messageTag = messageTag.substring(messageTag.indexOf("\"") + 1, messageTag.lastIndexOf("\""));
+
+ if("message".equals(messageTag)){
+ message = MessageParts[2].trim();
+ //Remove trailing bracket twice to get the message
+ message = message.substring(0, message.lastIndexOf("}")).trim();
+ message = message.substring(0, message.lastIndexOf("}")).trim();
+ if(message.indexOf('{') == 0 && message.indexOf('}') == message.length() - 1){
+ if(log.isDebugEnabled()) {
+ log.debug(String.format("[Extracted message] %s ", message));
+ }
+ event.setMessage(message);
+ return event;
+ }
+ }
+ return null;
+ }
+
+ private class EventMessage {
+ private String eventName;
+ private String message;
+
+ private String getEventName() {
+ return eventName;
+ }
+
+ private void setEventName(String eventName) {
+ this.eventName = eventName;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+ }
}