addon dependency sorting

This commit is contained in:
dfsek
2021-11-18 21:13:32 -07:00
parent 9b30d11791
commit 83126454ea
3 changed files with 72 additions and 46 deletions
@@ -1,6 +1,10 @@
package com.dfsek.terra.addons.manifest.impl;
import java.util.List;
import java.util.Map;
import ca.solostudios.strata.version.Version;
import ca.solostudios.strata.version.VersionRange;
import com.dfsek.terra.addons.manifest.api.AddonInitializer;
import com.dfsek.terra.addons.manifest.impl.config.AddonManifest;
@@ -43,4 +47,18 @@ public class ManifestAddon implements BaseAddon {
initializer.initialize();
});
}
public AddonManifest getManifest() {
return manifest;
}
@Override
public Map<String, VersionRange> getDependencies() {
return manifest.getDependencies();
}
@Override
public Version getVersion() {
return manifest.getVersion();
}
}
@@ -1,5 +1,6 @@
package com.dfsek.terra.addons.manifest.impl;
import ca.solostudios.strata.Versions;
import ca.solostudios.strata.version.Version;
import ca.solostudios.strata.version.VersionRange;
import com.dfsek.tectonic.exception.LoadException;
@@ -33,6 +34,8 @@ public class ManifestAddonLoader implements BootstrapBaseAddon<ManifestAddon> {
@Inject
private Platform platform;
private static final Version VERSION = Versions.getVersion(1, 0, 0);
@Override
public Iterable<ManifestAddon> loadAddons(Path addonsFolder, ClassLoader parent) {
platform.logger().info("Loading addons...");
@@ -98,4 +101,9 @@ public class ManifestAddonLoader implements BootstrapBaseAddon<ManifestAddon> {
public String getID() {
return "MANIFEST";
}
@Override
public Version getVersion() {
return VERSION;
}
}
@@ -36,7 +36,7 @@ public class AddonManifest implements ConfigTemplate, StringIdentifiable {
@Value("depends")
@Default
private Map<String, VersionRange> dependencies;
private Map<String, VersionRange> dependencies = Collections.emptyMap();
@Value("website")
private WebsiteConfig website;