1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.hadoop.hbase.ipc;
21
22 import java.util.HashMap;
23
24 public class MetricsHBaseServerSourceFactoryImpl extends MetricsHBaseServerSourceFactory {
25 private static enum SourceStorage {
26 INSTANCE;
27 HashMap<String, MetricsHBaseServerSource>
28 sources =
29 new HashMap<String, MetricsHBaseServerSource>();
30
31 }
32
33 @Override
34 public MetricsHBaseServerSource create(String serverName, MetricsHBaseServerWrapper wrapper) {
35 return getSource(serverName, wrapper);
36 }
37
38 private static synchronized MetricsHBaseServerSource getSource(String serverName,
39 MetricsHBaseServerWrapper wrapper) {
40 String context = createContextName(serverName);
41 MetricsHBaseServerSource source = SourceStorage.INSTANCE.sources.get(context);
42
43 if (source == null) {
44
45 source = new MetricsHBaseServerSourceImpl(
46 METRICS_NAME,
47 METRICS_DESCRIPTION,
48 context.toLowerCase(),
49 context + METRICS_JMX_CONTEXT_SUFFIX, wrapper);
50
51
52 SourceStorage.INSTANCE.sources.put(context, source);
53 }
54
55 return source;
56
57 }
58
59 }