This repository has been archived by the owner on Jul 15, 2019. It is now read-only.
/
TSOMockModule.java
53 lines (39 loc) · 1.63 KB
/
TSOMockModule.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package com.yahoo.omid.tso;
import static com.yahoo.omid.tso.RequestProcessorImpl.TSO_MAX_ITEMS_KEY;
import javax.inject.Singleton;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.name.Names;
import com.yahoo.omid.committable.CommitTable;
import com.yahoo.omid.committable.InMemoryCommitTable;
import com.yahoo.omid.metrics.MetricsRegistry;
import com.yahoo.omid.metrics.NullMetricsProvider;
import com.yahoo.omid.timestamp.storage.TimestampStorage;
import com.yahoo.omid.tso.TimestampOracleImpl.InMemoryTimestampStorage;
public class TSOMockModule extends AbstractModule {
private final TSOServerCommandLineConfig config;
public TSOMockModule(TSOServerCommandLineConfig config) {
this.config = config;
}
@Override
protected void configure() {
bind(CommitTable.class).to(InMemoryCommitTable.class).in(Singleton.class);
bind(TimestampStorage.class).to(InMemoryTimestampStorage.class).in(Singleton.class);
bind(TimestampOracle.class).to(PausableTimestampOracle.class).in(Singleton.class);
bind(Panicker.class).to(MockPanicker.class).in(Singleton.class);
// Disruptor setup
// Overwrite default value
bindConstant().annotatedWith(Names.named(TSO_MAX_ITEMS_KEY)).to(config.getMaxItems());
install(new DisruptorModule());
// ZK Module
install(new ZKModule(config));
}
@Provides
TSOServerCommandLineConfig provideTSOServerConfig() {
return config;
}
@Provides @Singleton
MetricsRegistry provideMetricsRegistry() {
return new NullMetricsProvider();
}
}