wire some components together

pull/4/head
Zlatin Balevsky 2018-07-24 03:52:14 +01:00
parent 19a688037f
commit 46ddd65e03
1 changed files with 49 additions and 0 deletions

View File

@ -1,9 +1,18 @@
package com.muwire.core
import com.muwire.core.connection.ConnectionEvent
import com.muwire.core.connection.ConnectionManager
import com.muwire.core.connection.LeafConnectionManager
import com.muwire.core.connection.UltrapeerConnectionManager
import com.muwire.core.hostcache.CacheClient
import com.muwire.core.hostcache.HostCache
import com.muwire.core.hostcache.HostDiscoveredEvent
import com.muwire.core.trust.TrustEvent
import com.muwire.core.trust.TrustService
import groovy.util.logging.Log
import net.i2p.client.I2PClientFactory
import net.i2p.client.I2PSession
@Log
class Core {
@ -39,6 +48,46 @@ class Core {
trustService.start()
trustService.waitForLoad()
log.info("initializing host cache")
File hostStorage = new File(home, "hosts.json")
HostCache hostCache = new HostCache(trustService,hostStorage, 30000, props)
eventBus.register(HostDiscoveredEvent.class, hostCache)
eventBus.register(ConnectionEvent.class, hostCache)
hostCache.start()
hostCache.waitForLoad()
log.info("initializing connection manager")
ConnectionManager connectionManager = props.isLeaf() ?
new LeafConnectionManager(eventBus,3) : new UltrapeerConnectionManager(eventBus, 512, 512)
eventBus.register(TrustEvent.class, connectionManager)
log.info("initializing I2P session")
def i2pClient = new I2PClientFactory().createClient()
File keyDat = new File(home, "key.dat")
if (!keyDat.exists()) {
log.info("Creating new key.dat")
keyDat.withOutputStream {
i2pClient.createDestination(it)
}
}
def sysProps = System.getProperties().clone()
sysProps["inbound.nickname"] = "MuWire"
I2PSession i2pSession
keyDat.withInputStream {
i2pSession = i2pClient.createSession(it, sysProps)
}
log.info("connecting i2p session")
i2pSession.connect()
log.info("initializing cache client")
CacheClient cacheClient = new CacheClient(eventBus,hostCache, connectionManager, i2pSession, props, 10000)
cacheClient.start()
// ... at the end, sleep
log.info("initialized everything, sleeping")
Thread.sleep(Integer.MAX_VALUE)
}
}