You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2014/01/03 11:18:06 UTC

git commit: adding instance cleanup processor and listener

Updated Branches:
  refs/heads/master 6752bb739 -> 00675c8fe


adding instance cleanup processor and listener


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/00675c8f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/00675c8f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/00675c8f

Branch: refs/heads/master
Commit: 00675c8fe4379a2233b02d25883d43acaada622a
Parents: 6752bb7
Author: rekathiru <rt...@gmail.com>
Authored: Fri Jan 3 15:48:02 2014 +0530
Committer: rekathiru <rt...@gmail.com>
Committed: Fri Jan 3 15:48:02 2014 +0530

----------------------------------------------------------------------
 .../instance/notifier/InstanceCleanupEvent.java |  4 ++
 .../notifier/InstanceCleanupEventListener.java  | 25 +++++++++
 ...InstanceCleanupNotifierMessageProcessor.java | 55 ++++++++++++++++++++
 .../InstanceNotifierMessageProcessorChain.java  |  6 +++
 4 files changed, 90 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/00675c8f/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/notifier/InstanceCleanupEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/notifier/InstanceCleanupEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/notifier/InstanceCleanupEvent.java
index be369b2..8412de3 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/notifier/InstanceCleanupEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/notifier/InstanceCleanupEvent.java
@@ -37,4 +37,8 @@ public class InstanceCleanupEvent extends InstanceNotifierEvent implements Seria
     public String getClusterId() {
         return clusterId;
     }
+
+    public String getMemberId() {
+        return memberId;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/00675c8f/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/instance/notifier/InstanceCleanupEventListener.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/instance/notifier/InstanceCleanupEventListener.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/instance/notifier/InstanceCleanupEventListener.java
new file mode 100644
index 0000000..ccc8dbc
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/instance/notifier/InstanceCleanupEventListener.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.stratos.messaging.listener.instance.notifier;
+
+import org.apache.stratos.messaging.listener.EventListener;
+
+public abstract class InstanceCleanupEventListener extends EventListener {
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/00675c8f/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceCleanupNotifierMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceCleanupNotifierMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceCleanupNotifierMessageProcessor.java
new file mode 100644
index 0000000..4d515c8
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceCleanupNotifierMessageProcessor.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.stratos.messaging.message.processor.instance.notifier;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.messaging.event.instance.notifier.InstanceCleanupEvent;
+import org.apache.stratos.messaging.message.processor.MessageProcessor;
+import org.apache.stratos.messaging.util.Util;
+
+public class InstanceCleanupNotifierMessageProcessor  extends MessageProcessor {
+     private static final Log log = LogFactory.getLog(InstanceCleanupNotifierMessageProcessor.class);
+
+    private MessageProcessor nextProcessor;
+    @Override
+    public void setNext(MessageProcessor nextProcessor) {
+        this.nextProcessor = nextProcessor;
+    }
+
+    @Override
+    public boolean process(String type, String message, Object object) {
+        if (InstanceCleanupEvent.class.getName().equals(type)) {
+            // Parse complete message and build event
+            InstanceCleanupEvent event = (InstanceCleanupEvent) Util.jsonToObject(message, InstanceCleanupEvent.class);
+
+            // Notify event listeners
+            notifyEventListeners(event);
+            return true;
+        }
+        else {
+            if(nextProcessor != null) {
+                return nextProcessor.process(type, message, object);
+            }
+            else {
+                throw new RuntimeException(String.format("Failed to process instance clean up using available message processors: [type] %s [body] %s", type, message));
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/00675c8f/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceNotifierMessageProcessorChain.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceNotifierMessageProcessorChain.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceNotifierMessageProcessorChain.java
index aae3b35..235c749 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceNotifierMessageProcessorChain.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceNotifierMessageProcessorChain.java
@@ -23,6 +23,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.messaging.listener.EventListener;
 import org.apache.stratos.messaging.listener.instance.notifier.ArtifactUpdateEventListener;
+import org.apache.stratos.messaging.listener.instance.notifier.InstanceCleanupEventListener;
 import org.apache.stratos.messaging.message.processor.MessageProcessorChain;
 
 /**
@@ -32,11 +33,14 @@ public class InstanceNotifierMessageProcessorChain extends MessageProcessorChain
     private static final Log log = LogFactory.getLog(InstanceNotifierMessageProcessorChain.class);
 
     private ArtifactUpdateMessageProcessor artifactUpdateMessageProcessor;
+    private InstanceCleanupNotifierMessageProcessor instanceCleanupNotifierMessageProcessor;
 
     public void initialize() {
         // Add instance notifier event processors
         artifactUpdateMessageProcessor = new ArtifactUpdateMessageProcessor();
         add(artifactUpdateMessageProcessor);
+        instanceCleanupNotifierMessageProcessor = new InstanceCleanupNotifierMessageProcessor();
+        add(instanceCleanupNotifierMessageProcessor);
 
         if (log.isDebugEnabled()) {
             log.debug("Instance notifier message processor chain initialized");
@@ -46,6 +50,8 @@ public class InstanceNotifierMessageProcessorChain extends MessageProcessorChain
     public void addEventListener(EventListener eventListener) {
         if (eventListener instanceof ArtifactUpdateEventListener) {
             artifactUpdateMessageProcessor.addEventListener(eventListener);
+        } else if (eventListener instanceof InstanceCleanupEventListener) {
+            artifactUpdateMessageProcessor.addEventListener(eventListener);
         } else {
             throw new RuntimeException("Unknown event listener");
         }