lodestone_core
lodestone_core copied to clipboard
Add DependencyManager
Description
Runtime dependencies such as jre are stored under the bin directory. This is done so that multiple instances can share a dependency.
Currently, each instance directly checks for the file under the bin directory and downloads it if it's not there. This is quite error-prone and does not work well with Lodestone Atom.
The DependencyManager will be responsible for managing dependencies including registration, providing paths and deletion.
The methods are outlined as follows:
register() takes in a string id, a path to the dependency, and a map from name to paths
get() takes in a string id and returns the map from names to paths
DependencyManager should store its state to a json file under bin, and is able to restore from the file