Runtime.getRuntime().addShutdownHook(this.shutdownHook);
this.metaConfig = metaConfig;
this.remotingServer = newRemotingServer(metaConfig);
this.executorsManager = new ExecutorsManager(metaConfig);
this.idWorker = new IdWorker(metaConfig.getBrokerId());
this.storeManager = new MessageStoreManager(metaConfig, this.newDeletePolicy(metaConfig));
this.statsManager = new StatsManager(this.metaConfig, this.storeManager, this.remotingServer);
this.brokerZooKeeper = new BrokerZooKeeper(metaConfig);
JournalTransactionStore transactionStore = null;
try {
transactionStore = new JournalTransactionStore(metaConfig.getDataLogPath(), this.storeManager, metaConfig);