| /* |
| * 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.uima.ducc.rm.event; |
| |
| import org.apache.camel.Body; |
| import org.apache.uima.ducc.common.ANodeStability; |
| import org.apache.uima.ducc.common.utils.DuccLogger; |
| import org.apache.uima.ducc.rm.ResourceManager; |
| import org.apache.uima.ducc.rm.scheduler.SchedConstants; |
| import org.apache.uima.ducc.transport.dispatcher.DuccEventDispatcher; |
| import org.apache.uima.ducc.transport.event.NodeInventoryUpdateDuccEvent; |
| import org.apache.uima.ducc.transport.event.NodeMetricsUpdateDuccEvent; |
| import org.apache.uima.ducc.transport.event.OrchestratorStateDuccEvent; |
| import org.apache.uima.ducc.transport.event.delegate.DuccEventDelegateListener; |
| |
| |
| public class ResourceManagerEventListener |
| implements DuccEventDelegateListener, |
| SchedConstants |
| { |
| private static DuccLogger logger = DuccLogger.getLogger(ResourceManagerEventListener.class, COMPONENT_NAME); |
| |
| private String targetEndpoint; |
| private ResourceManager rm; |
| private DuccEventDispatcher eventDispatcher; |
| private ANodeStability nodeStability; |
| |
| public DuccEventDispatcher getEventDispatcher() { |
| return eventDispatcher; |
| } |
| |
| public void setEventDispatcher(DuccEventDispatcher eventDispatcher) { |
| this.eventDispatcher = eventDispatcher; |
| } |
| |
| public void setNodeStability(ANodeStability ns) |
| { |
| this.nodeStability = ns; |
| } |
| |
| public String getTargetEndpoint() { |
| return targetEndpoint; |
| } |
| |
| public void setTargetEndpoint(String targetEndpoint) { |
| this.targetEndpoint = targetEndpoint; |
| } |
| |
| public ResourceManagerEventListener(ResourceManager rm) |
| { |
| this.rm = rm; |
| } |
| |
| public void setDuccEventDispatcher( DuccEventDispatcher eventDispatcher ) |
| { |
| this.eventDispatcher = eventDispatcher; |
| } |
| |
| public void setEndpoint( String endpoint ) |
| { |
| this.targetEndpoint = endpoint; |
| } |
| |
| /** |
| * Receives {@code NodeMetricsUpdateDuccEvent} events from transport. |
| * |
| * @param duccEvent |
| * @throws Exception |
| */ |
| public void onNodeMetricsEvent(@Body NodeMetricsUpdateDuccEvent duccEvent) throws Exception |
| { |
| //rm.nodeArrives(duccEvent.getNode()); |
| nodeStability.nodeArrives(duccEvent.getNode()); |
| } |
| |
| public void onNodeInventoryUpdateEvent(@Body NodeInventoryUpdateDuccEvent duccEvent) throws Exception { |
| } |
| |
| /** |
| * Receives {@code OrchestratorDuccEvent} events from transport. |
| * |
| * @param duccEvent |
| * @throws Exception |
| */ |
| public void onOrchestratorStateUpdateEvent(@Body OrchestratorStateDuccEvent duccEvent) throws Exception |
| { |
| String methodName = "onOrchestratorStateUpdateEvent"; |
| logger.info(methodName, null, "Event arrives"); |
| rm.onOrchestratorStateUpdate(duccEvent.getWorkMap()); |
| } |
| |
| } |