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 import org.apache.hadoop.hbase.classification.InterfaceAudience;
25
26 @InterfaceAudience.Private
27 public class MetricsHBaseServerSourceFactoryImpl extends MetricsHBaseServerSourceFactory {
28 private enum SourceStorage {
29 INSTANCE;
30 HashMap<String, MetricsHBaseServerSource>
31 sources =
32 new HashMap<String, MetricsHBaseServerSource>();
33
34 }
35
36 @Override
37 public MetricsHBaseServerSource create(String serverName, MetricsHBaseServerWrapper wrapper) {
38 return getSource(serverName, wrapper);
39 }
40
41 private static synchronized MetricsHBaseServerSource getSource(String serverName,
42 MetricsHBaseServerWrapper wrap) {
43 String context = createContextName(serverName);
44 MetricsHBaseServerSource source = SourceStorage.INSTANCE.sources.get(context);
45
46 if (source == null) {
47
48 source = new MetricsHBaseServerSourceImpl(
49 context,
50 METRICS_DESCRIPTION,
51 context.toLowerCase(),
52 context + METRICS_JMX_CONTEXT_SUFFIX, wrap);
53
54
55 SourceStorage.INSTANCE.sources.put(context, source);
56 }
57
58 return source;
59
60 }
61
62 }