Skip to content

Commit 66d9a00

Browse files
committed
add endpoints for osl gen2
1 parent c25a439 commit 66d9a00

File tree

2 files changed

+49
-34
lines changed

2 files changed

+49
-34
lines changed

src/main/java/net/ornithemc/meta/data/VersionDatabase.java

Lines changed: 41 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,6 @@ public class VersionDatabase {
5757
public static final MavenMetadataParser FABRIC_LOADER_METADATA_PARSER = new MavenMetadataParser(FABRIC_MAVEN_URL, "net.fabricmc", "fabric-loader");
5858
public static final MavenMetadataParser QUILT_LOADER_METADATA_PARSER = new MavenMetadataParser(QUILT_MAVEN_URL, "org.quiltmc", "quilt-loader");
5959
public static final MavenMetadataParser INSTALLER_METADATA_PARSER = new MavenMetadataParser(ORNITHE_MAVEN_URL, "net.ornithemc", "ornithe-installer");
60-
public static final MavenMetadataParser OSL_METADATA_PARSER = new MavenMetadataParser(ORNITHE_MAVEN_URL, "net.ornithemc", "osl");
61-
public static final MavenPomParser OSL_POM_PARSER = new MavenPomParser(ORNITHE_MAVEN_URL, "net.ornithemc", "osl");
6260

6361
public static ConfigV3 config;
6462

@@ -70,6 +68,10 @@ private static final MavenMetadataParser generationalMavenMetadataParser(int gen
7068
return new MavenMetadataParser(ORNITHE_MAVEN_URL, groupId, modifyForIntermediaryGeneration(artifactId, generation), generation <= config.stableIntermediaryGeneration);
7169
}
7270

71+
private static final MavenPomParser generationalMavenPomParser(int generation, String groupId, String artifactId) {
72+
return new MavenPomParser(ORNITHE_MAVEN_URL, groupId, modifyForIntermediaryGeneration(artifactId, generation), generation <= config.stableIntermediaryGeneration);
73+
}
74+
7375
public static final MavenMetadataParser intermediaryMetadataParser(int generation) {
7476
return generationalMavenMetadataParser(generation, "net.ornithemc", "calamus-intermediary");
7577
}
@@ -78,15 +80,23 @@ public static final MavenMetadataParser featherMetadataParser(int generation) {
7880
return generationalMavenMetadataParser(generation, "net.ornithemc", "feather");
7981
}
8082

81-
public static final MavenMetadataParser oslModuleMetadataParser(String module) {
82-
return new MavenMetadataParser(ORNITHE_MAVEN_URL, "net.ornithemc.osl", module);
83+
public static final MavenMetadataParser oslMetadataParser(int generation) {
84+
return generationalMavenMetadataParser(generation, "net.ornithemc", "osl");
85+
}
86+
87+
public static final MavenPomParser oslPomParser(int generation) {
88+
return generationalMavenPomParser(generation, "net.ornithemc", "osl");
8389
}
8490

85-
private static List<String> oslModules() {
91+
public static final MavenMetadataParser oslModuleMetadataParser(int generation, String module) {
92+
return new MavenMetadataParser(ORNITHE_MAVEN_URL, modifyForIntermediaryGeneration("net.ornithemc.osl", generation), module, generation <= config.stableIntermediaryGeneration);
93+
}
94+
95+
private static List<String> oslModules(int generation) {
8696
List<String> modules = new ArrayList<>();
8797

8898
try {
89-
URL url = new URL(ORNITHE_MAVEN_DETAILS_URL + "net/ornithemc/osl");
99+
URL url = new URL(modifyForIntermediaryGeneration(ORNITHE_MAVEN_DETAILS_URL + "net/ornithemc/osl", generation));
90100

91101
try (InputStreamReader input = new InputStreamReader(url.openStream())) {
92102
JsonNode json = OrnitheMeta.MAPPER.readTree(input);
@@ -123,25 +133,26 @@ private static List<String> oslModules() {
123133
private final Int2ObjectMap<List<BaseVersion>> game;
124134
private final Int2ObjectMap<List<MavenVersion>> intermediary;
125135
private final Int2ObjectMap<List<MavenBuildGameVersion>> feather;
136+
private final Int2ObjectMap<List<MavenVersion>> osl;
137+
private final Int2ObjectMap<Map<String, List<MavenVersion>>> oslDependencies;
138+
private final Int2ObjectMap<Map<String, List<MavenVersion>>> oslModules;
126139
private final Map<LoaderType, List<MavenBuildVersion>> loader;
127-
private final Map<String, List<MavenVersion>> oslDependencies;
128-
private final Map<String, List<MavenVersion>> oslModules;
129140

130141
public List<MavenBuildGameVersion> raven;
131142
public List<MavenBuildGameVersion> sparrow;
132143
public List<MavenBuildGameVersion> nests;
133144
public List<MavenUrlVersion> installer;
134-
public List<MavenVersion> osl;
135145
public List<LibraryUpgrade> libraryUpgrades;
136146

137147
private VersionDatabase() {
138148
this.manifest = new VersionManifest();
139149
this.game = new Int2ObjectOpenHashMap<>();
140150
this.intermediary = new Int2ObjectOpenHashMap<>();
141151
this.feather = new Int2ObjectOpenHashMap<>();
152+
this.osl = new Int2ObjectOpenHashMap<>();
153+
this.oslDependencies = new Int2ObjectOpenHashMap<>();
154+
this.oslModules = new Int2ObjectOpenHashMap<>();
142155
this.loader = new EnumMap<>(LoaderType.class);
143-
this.oslDependencies = new HashMap<>();
144-
this.oslModules = new HashMap<>();
145156
}
146157

147158
public static VersionDatabase generate() throws Exception {
@@ -151,6 +162,15 @@ public static VersionDatabase generate() throws Exception {
151162
for (int generation = 1; generation <= config.latestIntermediaryGeneration; generation++) {
152163
database.intermediary.put(generation, intermediaryMetadataParser(generation).getVersions(MavenVersion::new));
153164
database.feather.put(generation, featherMetadataParser(generation).getVersions(MavenBuildGameVersion::new));
165+
database.osl.put(generation, oslMetadataParser(generation).getVersions(MavenVersion::new));
166+
for (MavenVersion version : database.osl.get(generation)) {
167+
database.oslDependencies.computeIfAbsent(generation, key -> new HashMap<>()).put(version.getVersion(), oslPomParser(generation).getDependencies(MavenVersion::new, version.getVersion(), v -> {
168+
return v.getMaven().startsWith("net.ornithemc.osl");
169+
}));
170+
}
171+
for (String module : oslModules(generation)) {
172+
database.oslModules.computeIfAbsent(generation, key -> new HashMap<>()).put(module, oslModuleMetadataParser(generation, module).getVersions(MavenVersion::new));
173+
}
154174
}
155175
database.raven = RAVEN_METADATA_PARSER.getVersions(MavenBuildGameVersion::new);
156176
database.sparrow = SPARROW_METADATA_PARSER.getVersions(MavenBuildGameVersion::new);
@@ -173,15 +193,6 @@ public static VersionDatabase generate() throws Exception {
173193
}
174194
}));
175195
database.installer = INSTALLER_METADATA_PARSER.getVersions(MavenUrlVersion::new);
176-
database.osl = OSL_METADATA_PARSER.getVersions(MavenVersion::new);
177-
for (MavenVersion version : database.osl) {
178-
database.oslDependencies.put(version.getVersion(), OSL_POM_PARSER.getDependencies(MavenVersion::new, version.getVersion(), v -> {
179-
return v.getMaven().startsWith("net.ornithemc.osl");
180-
}));
181-
}
182-
for (String module : oslModules()) {
183-
database.oslModules.put(module, oslModuleMetadataParser(module).getVersions(MavenVersion::new));
184-
}
185196
database.libraryUpgrades = LibraryUpgradesV3.get();
186197
database.loadMcData();
187198
OrnitheMeta.LOGGER.info("DB update took {}ms", System.currentTimeMillis() - start);
@@ -297,16 +308,20 @@ public List<MavenBuildGameVersion> getFeather(int generation) {
297308
return feather.get(generation);
298309
}
299310

300-
public List<MavenBuildVersion> getLoader(LoaderType type) {
301-
return loader.get(type).stream().filter(VersionDatabase::isPublicLoaderVersion).collect(Collectors.toList());
311+
public List<MavenVersion> getOsl(int generation) {
312+
return osl.get(generation);
302313
}
303314

304-
public List<MavenVersion> getOslDependencies(String version) {
305-
return oslDependencies.get(version);
315+
public List<MavenVersion> getOslDependencies(int generation, String version) {
316+
return oslDependencies.get(generation).get(version);
306317
}
307318

308-
public List<MavenVersion> getOslModule(String module) {
309-
return oslModules.get(module);
319+
public List<MavenVersion> getOslModule(int generation, String module) {
320+
return oslModules.get(generation).get(module);
321+
}
322+
323+
public List<MavenBuildVersion> getLoader(LoaderType type) {
324+
return loader.get(type).stream().filter(VersionDatabase::isPublicLoaderVersion).collect(Collectors.toList());
310325
}
311326

312327
public List<MavenBuildVersion> getAllLoader(LoaderType type) {

src/main/java/net/ornithemc/meta/web/EndpointsV3.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,10 @@ public static void setup() {
8585

8686
jsonGet("/installer", context -> withLimitSkip(context, OrnitheMeta.database.installer));
8787

88-
jsonGet("/osl", context -> withLimitSkip(context, OrnitheMeta.database.osl));
89-
jsonGet("/osl/:version", context -> withLimitSkip(context, getOslDependencyInfo(context)));
90-
jsonGet("/osl/:module/:game_version", context -> withLimitSkip(context, getOslModuleInfo(context)));
91-
jsonGet("/osl/:module/:game_version/:base_version", context -> withLimitSkip(context, getOslModuleInfo(context)));
88+
jsonGetF("/osl", generation -> context -> withLimitSkip(context, OrnitheMeta.database.getOsl(generation)));
89+
jsonGetF("/osl/:version", generation -> context -> withLimitSkip(context, getOslDependencyInfo(context, generation)));
90+
jsonGetF("/osl/:module/:game_version", generation -> context -> withLimitSkip(context, getOslModuleInfo(context, generation)));
91+
jsonGetF("/osl/:module/:game_version/:base_version", generation -> context -> withLimitSkip(context, getOslModuleInfo(context, generation)));
9292

9393
ProfileHandlerV3.setup();
9494
}
@@ -238,18 +238,18 @@ private static <T extends BaseVersion> List<BaseVersion> compatibleGameVersions(
238238
return versions;
239239
}
240240

241-
private static List<?> getOslDependencyInfo(Context context) {
241+
private static List<?> getOslDependencyInfo(Context context, int generation) {
242242
if (!context.pathParamMap().containsKey("version")) {
243243
return null;
244244
}
245245

246246
String version = context.pathParam("version");
247-
List<MavenVersion> versions = OrnitheMeta.database.getOslDependencies(version);
247+
List<MavenVersion> versions = OrnitheMeta.database.getOslDependencies(generation, version);
248248

249249
return versions;
250250
}
251251

252-
private static List<?> getOslModuleInfo(Context context) {
252+
private static List<?> getOslModuleInfo(Context context, int generation) {
253253
if (!context.pathParamMap().containsKey("module")) {
254254
return null;
255255
}
@@ -265,7 +265,7 @@ private static List<?> getOslModuleInfo(Context context) {
265265
return null;
266266
}
267267

268-
List<MavenVersion> versions = OrnitheMeta.database.getOslModule(module);
268+
List<MavenVersion> versions = OrnitheMeta.database.getOslModule(generation, module);
269269

270270
if (context.pathParamMap().containsKey("base_version")) {
271271
String baseVersion = context.pathParam("base_version");

0 commit comments

Comments
 (0)