{
try {
File dataDir = new File(cacheDir);
File databaseDir = new File(dataDir, "db");
IDBI localStorageManagerDbi = createDataSource(databaseDir, "StorageManager");
DatabaseLocalStorageManagerConfig storageManagerConfig = new DatabaseLocalStorageManagerConfig()
.setCompressed(false)
.setDataDirectory(new File(dataDir, "data"));
LocalStorageManager localStorageManager = new DatabaseLocalStorageManager(localStorageManagerDbi, storageManagerConfig);
NativeDataStreamProvider nativeDataStreamProvider = new NativeDataStreamProvider(localStorageManager);
NativeRecordSinkProvider nativeRecordSinkProvider = new NativeRecordSinkProvider(localStorageManager, nodeManager.getCurrentNode().getNodeIdentifier());
IDBI metadataDbi = createDataSource(databaseDir, "Metastore");
DatabaseShardManager shardManager = new DatabaseShardManager(metadataDbi);
NativeMetadata nativeMetadata = new NativeMetadata(new NativeConnectorId("default"), metadataDbi, shardManager);
NativeSplitManager nativeSplitManager = new NativeSplitManager(nodeManager, shardManager, nativeMetadata);
NativeConnectorFactory nativeConnectorFactory = new NativeConnectorFactory(nativeMetadata, nativeSplitManager, nativeDataStreamProvider, nativeRecordSinkProvider);