OpenJDK teklifi, Java sınıfı dosya API’si sağlayacaktır


Java, Java topluluğundaki bir teklif kapsamında Java sınıfı dosyalarını işlemek için bir API alacaktı.

Taslak sınıf dosyası API teklifi Java sınıfı dosyalarının ayrıştırılması, oluşturulması ve dönüştürülmesi için bir API sağlanmasını gerektirir. Bu sınıf dosyası kitaplığı başlangıçta ASM Java bayt kodu işleme çerçevesi için dahili bir yedek olarak hizmet edecekti. Sonunda, ASM tamamen JDK’dan kaldırılacaktı.

Sınıf dosyası API önerisi, sınıf dosyası oluşturma, ayrıştırma ve enstrümantasyonun Java ekosisteminde her yerde mevcut olduğunu ve sınıf dosyalarını işlemesi gereken birçok araç ve kitaplığın bulunduğunu belirtir. Çerçeveler genellikle anında bayt kodu enstrümantasyonu gerçekleştirir. Teklifin belirttiği üzere JDK, Java sınıfı dosyalarını okumak, yazmak ve dönüştürmek için doğru, eksiksiz, güncel, performanslı bir API sağlamalıdır.

API için tasarım hedefleri ve ilkeleri, değiştirilemez nesnelerle temsil edilen yöntemler ve alanlar gibi tüm sınıf dosyası varlıklarına sahip olmayı içerir. Kullanıcı odaklı navigasyon da bir hedeftir. Java sınıf dosyası kitaplığı çağrısını motive etmek, aşağıdakileri içeren faktörlerdir:

  • JDK konsolidasyonu, JDK’nın kendisi sınıf dosyalarıyla uğraşırken önemlidir. Ve JDK’nın ASM kullanımında doğal olarak bir gecikme var.
  • Çerçeveler ve JDK’yı çalıştırma arasında sürüm çarpıklığı. Sınıf dosyalarını işleyen uygulamalar ve çerçeveler genellikle ASM gibi bir sınıf dosyası kitaplığını bir araya getirir. Ancak yeni sınıf dosyası özellikleri JDK’nın herhangi bir sürümünde görünebileceğinden, uygulamalar ve çerçeveler, paketlendikleri kitaplıktan daha yeni olan sınıf dosyalarıyla daha sık karşılaşır ve bu da çalışma zamanı hatalarına veya sınıf dosyası biçimlerini gelecek. Geliştiriciler, JDK’yı çalıştırarak güncel olacak bir sınıf dosyası kitaplığı ister.
  • JVM ve sınıf dosya formatı artık eskisinden daha hızlı gelişiyor. Valhalla Projesi’nin yeni bayt kodları, alan tanımlayıcıları ve doğrulama kuralları getirmesi gibi bazı gelişmeler basitken, diğerleri daha karmaşıktır.
  • ASM yazıldığından beri dil önemli ölçüde gelişti.

Planlar, başlangıçta ASM’yi, kabul edilemez performans kaybı olmadan JDK’nın çalışma zamanı bağımlılığı olarak değiştirmeyi gerektirir. Başka bir amaç, derleyici ve JDK araçları tarafından kullanılan dahili sınıf okuyucu kitaplığını değiştirmek olacaktır. Sonunda, bir dizi çerçeve ve uygulama, kitaplığı ASM, cglib ve diğer bayt kodu kitaplıklarına alternatif olarak kullanabilmelidir.

Telif Hakkı © 2022 IDG Communications, Inc.


Kaynak : https://www.infoworld.com/article/3664809/openjdk-proposal-would-provide-java-class-file-api.html#tk.rss_all

Yorum yapın