@@ -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 ) {
0 commit comments