View Javadoc

1   package org.apache.helix.controller.pipeline;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import java.util.Map;
23  
24  import org.apache.helix.controller.stages.ClusterEvent;
25  import org.apache.helix.monitoring.mbeans.HelixStageLatencyMonitor;
26  
27  
28  public class AbstractBaseStage implements Stage
29  {
30    @Override
31    public void init(StageContext context)
32    {
33  
34    }
35  
36    @Override
37    public void preProcess()
38    {
39      // TODO Auto-generated method stub
40  
41    }
42  
43    @Override
44    public void process(ClusterEvent event) throws Exception
45    {
46  
47    }
48  
49    @Override
50    public void postProcess()
51    {
52  
53    }
54  
55    @Override
56    public void release()
57    {
58  
59    }
60  
61    @Override
62    public String getStageName()
63    {
64      // default stage name will be the class name
65      String className = this.getClass().getName();
66      return className;
67    }
68  
69    public void addLatencyToMonitor(ClusterEvent event, long latency)
70    {
71      Map<String, HelixStageLatencyMonitor> stgLatencyMonitorMap =
72          event.getAttribute("HelixStageLatencyMonitorMap");
73      if (stgLatencyMonitorMap != null)
74      {
75        if (stgLatencyMonitorMap.containsKey(getStageName()))
76        {
77          HelixStageLatencyMonitor stgLatencyMonitor =
78              stgLatencyMonitorMap.get(getStageName());
79          stgLatencyMonitor.addStgLatency(latency);
80        }
81      }
82    }
83  }