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 <[email protected]> Authored: Fri Jan 3 15:48:02 2014 +0530 Committer: rekathiru <[email protected]> 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"); }
