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