@@ -24,9 +24,27 @@ pub async fn filter_java_version(java_version: Option<u32>) -> crate::Result<Vec
2424}
2525
2626#[ derive( Deserialize ) ]
27- struct JavaPackage {
27+ pub struct JavaZuluPackage {
2828 pub download_url : String ,
2929 pub name : PathBuf ,
30+ pub java_version : Vec < u32 > ,
31+ }
32+
33+ pub async fn fetch_zulu ( ) -> crate :: Result < Vec < JavaZuluPackage > > {
34+ let state = State :: get ( ) . await ?;
35+
36+ fetch_json :: < Vec < JavaZuluPackage > > (
37+ Method :: GET ,
38+ & format ! (
39+ "https://api.azul.com/metadata/v1/zulu/packages/?os={}&arch={}&archive_type=zip&java_package_type=jre&javafx_bundled=false&latest=true&release_status=ga&availability_types=CA&certifications=tck&page=1&page_size=100" ,
40+ std:: env:: consts:: OS ,
41+ std:: env:: consts:: ARCH ,
42+ ) ,
43+ None ,
44+ None ,
45+ & state. fetch_semaphore ,
46+ )
47+ . await
3048}
3149
3250// TODO: support more than just zulu ?
@@ -44,7 +62,7 @@ pub async fn install_java(java_version: u32) -> crate::Result<PathBuf> {
4462 . await ?;
4563
4664 send_ingress ( & ingress, 0.0 , Some ( "fetching java api" ) ) . await ?;
47- let packages = fetch_json :: < Vec < JavaPackage > > ( Method :: GET , & format ! (
65+ let packages = fetch_json :: < Vec < JavaZuluPackage > > ( Method :: GET , & format ! (
4866 "https://api.azul.com/metadata/v1/zulu/packages?arch={}&java_version={}&os={}&archive_type=zip&javafx_bundled=false&java_package_type=jre&page_size=1" ,
4967 std:: env:: consts:: ARCH , java_version, std:: env:: consts:: OS ,
5068 ) , None , None , & state. fetch_semaphore ) . await ?;
0 commit comments