blob: 047bad17466b92b5067e474794e25d5e0b5ae107 (
plain)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
package market.guess.ui.console;
import java.time.Clock;
import market.guess.api.CatalogContext;
import market.guess.api.GuessMarketContext;
import market.guess.service.LocalGuessMarketContext;
import market.guess.service.catalog.LocalCatalogContext;
import market.guess.service.catalog.infrastructure.MarketContext;
import market.guess.service.catalog.infrastructure.mapper.v1.EventMapperV1;
import market.guess.service.catalog.infrastructure.provider.Loader;
import market.guess.service.catalog.infrastructure.provider.v1.XMLLoaderV1;
import market.guess.service.catalog.infrastructure.provider.v1.XMLValidatorV1;
import market.guess.service.catalog.infrastructure.repository.EventRepository;
import market.guess.service.catalog.infrastructure.repository.InMemoryEventRepository;
import market.guess.service.catalog.infrastructure.repository.InMemoryUserRepository;
import market.guess.service.catalog.infrastructure.repository.UserRepository;
import market.guess.service.fulfillment.FulfillmentContext;
import market.guess.service.fulfillment.LocalFulfillmentContext;
import market.guess.service.ledger.LedgerContext;
import market.guess.service.matching.LocalMatchingEngine;
import market.guess.service.matching.MatchingEngine;
import market.guess.service.risk.LocalRiskEngine;
import market.guess.service.risk.RiskEngine;
import market.guess.service.settlement.LocalSettlementContext;
import market.guess.service.settlement.SettlementContext;
import market.guess.ui.console.command.EventDetailsMenuCommand;
import market.guess.ui.console.command.ExitMenuCommand;
import market.guess.ui.console.command.ListEventsMenuCommand;
import market.guess.ui.console.command.LoadFileMenuCommand;
import market.guess.ui.console.command.LoadMarketStateMenuCommand;
import market.guess.ui.console.command.PlaceOrderMenuCommand;
import market.guess.ui.console.command.SaveMarketStateMenuCommand;
import market.guess.ui.console.command.SettleEventMenuCommand;
import market.guess.ui.console.io.InputProcessor;
import org.picocontainer.DefaultPicoContainer;
import org.picocontainer.behaviors.Caching;
public class App {
public static void main() {
var pico = new DefaultPicoContainer(new Caching());
pico.addComponent(EventRepository.class, InMemoryEventRepository.class);
pico.addComponent(UserRepository.class, InMemoryUserRepository.class);
pico.addComponent(MarketContext.class);
pico.addComponent(EventMapperV1.class);
pico.addComponent(Loader.class, XMLLoaderV1.class);
pico.addComponent(XMLValidatorV1.class);
pico.addComponent(GuessMarketContext.class, LocalGuessMarketContext.class);
pico.addComponent(CatalogContext.class, LocalCatalogContext.class);
pico.addComponent(LedgerContext.class);
pico.addComponent(RiskEngine.class, LocalRiskEngine.class);
pico.addComponent(MatchingEngine.class, LocalMatchingEngine.class);
pico.addComponent(FulfillmentContext.class, LocalFulfillmentContext.class);
pico.addComponent(SettlementContext.class, LocalSettlementContext.class);
pico.addComponent(Clock.class, Clock.systemUTC());
pico.addComponent(LoadFileMenuCommand.class);
pico.addComponent(ListEventsMenuCommand.class);
pico.addComponent(ExitMenuCommand.class);
pico.addComponent(PlaceOrderMenuCommand.class);
pico.addComponent(SettleEventMenuCommand.class);
pico.addComponent(EventDetailsMenuCommand.class);
pico.addComponent(LoadMarketStateMenuCommand.class);
pico.addComponent(SaveMarketStateMenuCommand.class);
pico.addComponent(InputProcessor.class);
pico.addComponent(Menu.class);
pico.start();
}
}
|