Skip to content

Commit ca2c158

Browse files
committed
add endpoints for osl gen2
1 parent 78a42f4 commit ca2c158

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
@@ -59,8 +59,6 @@ public class VersionDatabase {
5959
public static final MavenMetadataParser FABRIC_LOADER_METADATA_PARSER = new MavenMetadataParser(FABRIC_MAVEN_URL, "net.fabricmc", "fabric-loader");
6060
public static final MavenMetadataParser QUILT_LOADER_METADATA_PARSER = new MavenMetadataParser(QUILT_MAVEN_URL, "org.quiltmc", "quilt-loader");
6161
public static final MavenMetadataParser INSTALLER_METADATA_PARSER = new MavenMetadataParser(ORNITHE_MAVEN_URL, "net.ornithemc", "ornithe-installer");
62-
public static final MavenMetadataParser OSL_METADATA_PARSER = new MavenMetadataParser(ORNITHE_MAVEN_URL, "net.ornithemc", "osl");
63-
public static final MavenPomParser OSL_POM_PARSER = new MavenPomParser(ORNITHE_MAVEN_URL, "net.ornithemc", "osl");
6462

6563
private static final Pattern INVALID_FABRIC_LOADER_VERSIONS_GEN2 = Pattern.compile("^(?:0\\.(?:\\d|1[0-6])\\..+|0\\.17\\.[0-2])");
6664
private static final Pattern INVALID_QUILT_LOADER_VERSIONS_GEN2 = Pattern.compile("^(?:0\\.(?:\\d|1\\d|2[0-8])\\..+|0\\.29\\.[0-2])");
@@ -75,6 +73,10 @@ private static final MavenMetadataParser generationalMavenMetadataParser(int gen
7573
return new MavenMetadataParser(ORNITHE_MAVEN_URL, groupId, modifyForIntermediaryGeneration(artifactId, generation), generation <= config.stableIntermediaryGeneration);
7674
}
7775

76+
private static final MavenPomParser generationalMavenPomParser(int generation, String groupId, String artifactId) {
77+
return new MavenPomParser(ORNITHE_MAVEN_URL, groupId, modifyForIntermediaryGeneration(artifactId, generation), generation <= config.stableIntermediaryGeneration);
78+
}
79+
7880
public static final MavenMetadataParser intermediaryMetadataParser(int generation) {
7981
return generationalMavenMetadataParser(generation, "net.ornithemc", "calamus-intermediary");
8082
}
@@ -83,8 +85,16 @@ public static final MavenMetadataParser featherMetadataParser(int generation) {
8385
return generationalMavenMetadataParser(generation, "net.ornithemc", "feather");
8486
}
8587

86-
public static final MavenMetadataParser oslModuleMetadataParser(String module) {
87-
return new MavenMetadataParser(ORNITHE_MAVEN_URL, "net.ornithemc.osl", module);
88+
public static final MavenMetadataParser oslMetadataParser(int generation) {
89+
return generationalMavenMetadataParser(generation, "net.ornithemc", "osl");
90+
}
91+
92+
public static final MavenPomParser oslPomParser(int generation) {
93+
return generationalMavenPomParser(generation, "net.ornithemc", "osl");
94+
}
95+
96+
public static final MavenMetadataParser oslModuleMetadataParser(int generation, String module) {
97+
return new MavenMetadataParser(ORNITHE_MAVEN_URL, modifyForIntermediaryGeneration("net.ornithemc.osl", generation), module, generation <= config.stableIntermediaryGeneration);
8898
}
8999

90100
public static Pattern invalidLoaderVersionsPattern(LoaderType loaderType) {
@@ -115,11 +125,11 @@ public static StableVersionIdentifier filterLoaderVersions(int generation, Loade
115125
};
116126
}
117127

118-
private static List<String> oslModules() {
128+
private static List<String> oslModules(int generation) {
119129
List<String> modules = new ArrayList<>();
120130

121131
try {
122-
URL url = new URL(ORNITHE_MAVEN_DETAILS_URL + "net/ornithemc/osl");
132+
URL url = new URL(modifyForIntermediaryGeneration(ORNITHE_MAVEN_DETAILS_URL + "net/ornithemc/osl", generation));
123133

124134
try (InputStreamReader input = new InputStreamReader(url.openStream())) {
125135
JsonNode json = OrnitheMeta.MAPPER.readTree(input);
@@ -156,25 +166,26 @@ private static List<String> oslModules() {
156166
private final Int2ObjectMap<List<BaseVersion>> game;
157167
private final Int2ObjectMap<List<MavenVersion>> intermediary;
158168
private final Int2ObjectMap<List<MavenBuildGameVersion>> feather;
169+
private final Int2ObjectMap<List<MavenVersion>> osl;
170+
private final Int2ObjectMap<Map<String, List<MavenVersion>>> oslDependencies;
171+
private final Int2ObjectMap<Map<String, List<MavenVersion>>> oslModules;
159172
private final Int2ObjectMap<Map<LoaderType, List<MavenBuildVersion>>> loader;
160-
private final Map<String, List<MavenVersion>> oslDependencies;
161-
private final Map<String, List<MavenVersion>> oslModules;
162173

163174
public List<MavenBuildGameVersion> raven;
164175
public List<MavenBuildGameVersion> sparrow;
165176
public List<MavenBuildGameVersion> nests;
166177
public List<MavenUrlVersion> installer;
167-
public List<MavenVersion> osl;
168178
public List<LibraryUpgrade> libraryUpgrades;
169179

170180
private VersionDatabase() {
171181
this.manifest = new VersionManifest();
172182
this.game = new Int2ObjectOpenHashMap<>();
173183
this.intermediary = new Int2ObjectOpenHashMap<>();
174184
this.feather = new Int2ObjectOpenHashMap<>();
185+
this.osl = new Int2ObjectOpenHashMap<>();
186+
this.oslDependencies = new Int2ObjectOpenHashMap<>();
187+
this.oslModules = new Int2ObjectOpenHashMap<>();
175188
this.loader = new Int2ObjectOpenHashMap<>();
176-
this.oslDependencies = new HashMap<>();
177-
this.oslModules = new HashMap<>();
178189
}
179190

180191
public static VersionDatabase generate() throws Exception {
@@ -184,6 +195,15 @@ public static VersionDatabase generate() throws Exception {
184195
for (int generation = 1; generation <= config.latestIntermediaryGeneration; generation++) {
185196
database.intermediary.put(generation, intermediaryMetadataParser(generation).getVersions(MavenVersion::new));
186197
database.feather.put(generation, featherMetadataParser(generation).getVersions(MavenBuildGameVersion::new));
198+
database.osl.put(generation, oslMetadataParser(generation).getVersions(MavenVersion::new));
199+
for (MavenVersion version : database.osl.get(generation)) {
200+
database.oslDependencies.computeIfAbsent(generation, key -> new HashMap<>()).put(version.getVersion(), oslPomParser(generation).getDependencies(MavenVersion::new, version.getVersion(), v -> {
201+
return v.getMaven().startsWith("net.ornithemc.osl");
202+
}));
203+
}
204+
for (String module : oslModules(generation)) {
205+
database.oslModules.computeIfAbsent(generation, key -> new HashMap<>()).put(module, oslModuleMetadataParser(generation, module).getVersions(MavenVersion::new));
206+
}
187207
database.loader.put(generation, new EnumMap<>(LoaderType.class));
188208
database.loader.get(generation).put(LoaderType.FABRIC, FABRIC_LOADER_METADATA_PARSER.getVersions(MavenBuildVersion::new, filterLoaderVersions(generation, LoaderType.FABRIC)));
189209
database.loader.get(generation).put(LoaderType.QUILT, QUILT_LOADER_METADATA_PARSER.getVersions(MavenBuildVersion::new, filterLoaderVersions(generation, LoaderType.QUILT)));
@@ -192,15 +212,6 @@ public static VersionDatabase generate() throws Exception {
192212
database.sparrow = SPARROW_METADATA_PARSER.getVersions(MavenBuildGameVersion::new);
193213
database.nests = NESTS_METADATA_PARSER.getVersions(MavenBuildGameVersion::new);
194214
database.installer = INSTALLER_METADATA_PARSER.getVersions(MavenUrlVersion::new);
195-
database.osl = OSL_METADATA_PARSER.getVersions(MavenVersion::new);
196-
for (MavenVersion version : database.osl) {
197-
database.oslDependencies.put(version.getVersion(), OSL_POM_PARSER.getDependencies(MavenVersion::new, version.getVersion(), v -> {
198-
return v.getMaven().startsWith("net.ornithemc.osl");
199-
}));
200-
}
201-
for (String module : oslModules()) {
202-
database.oslModules.put(module, oslModuleMetadataParser(module).getVersions(MavenVersion::new));
203-
}
204215
database.libraryUpgrades = LibraryUpgradesV3.get();
205216
database.loadMcData();
206217
OrnitheMeta.LOGGER.info("DB update took {}ms", System.currentTimeMillis() - start);
@@ -317,16 +328,20 @@ public List<MavenBuildGameVersion> getFeather(int generation) {
317328
return feather.get(generation);
318329
}
319330

320-
public List<MavenBuildVersion> getLoader(int generation, LoaderType type) {
321-
return loader.get(generation).get(type).stream().filter(v -> isPublicLoaderVersion(type, v)).collect(Collectors.toList());
331+
public List<MavenVersion> getOsl(int generation) {
332+
return osl.get(generation);
322333
}
323334

324-
public List<MavenVersion> getOslDependencies(String version) {
325-
return oslDependencies.get(version);
335+
public List<MavenVersion> getOslDependencies(int generation, String version) {
336+
return oslDependencies.get(generation).get(version);
326337
}
327338

328-
public List<MavenVersion> getOslModule(String module) {
329-
return oslModules.get(module);
339+
public List<MavenVersion> getOslModule(int generation, String module) {
340+
return oslModules.get(generation).get(module);
341+
}
342+
343+
public List<MavenBuildVersion> getLoader(int generation, LoaderType type) {
344+
return loader.get(generation).get(type).stream().filter(v -> isPublicLoaderVersion(type, v)).collect(Collectors.toList());
330345
}
331346

332347
public List<MavenBuildVersion> getAllLoader(int generation, 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)