Serkan Kaba

Karalama Defteri

AmaterasUML: Açık kaynak ve uyumluluk üzerine bir hikaye

Posted by Serkan Kaba 20 Nisan 2009

Bytecode uyumluluğu ve API uyumluluğu

Java kodlarımızı derlerken derleyiciye -source ve -target parametrelerini vererek belli bir sürüme ait bytecode a derleyebiliyoruz. Tabi burada yeni sürüme ait DİL özelliklerinden feragat ediyoruz. Örnek olarak kodumuzu Java 1.4 için derlemek istersek Generics, Boxing gibi özellikleri kullanamayız. Ancak bu işlem aynı garantiyi JDK’nın sunduğu API için sağlamamaktadır. Örnek olarak Java6 ile yeni gelen bir sınıfı kullanıp Java5 ile çalıştırdığımızda ClassNotFoundException, Java6 ile yeni gelen metodu Java5 ile çalıştırdığımızda NoSuchMethodError hatası alırız. Bu durumda en emin yöntem geliştirirken hedef aldığımız minimum majör sürümü (Örn: Java5) kullanmamız olacaktır. Artık pek çok IDE proje bazında  kullanılan JRE/JDK sürümünü seçmemize izin vermektedir.

AmaterasUML Eclipse eklentisini Java5 ile çalıştıtırken aldığım hata

Gelelim hikayemizin gelişme bölümüne. Eclipse için geliştirilmiş açık kaynaklı bir UML eklentisi olan AmaterasUML tam olarak da bu sorundan müzdarip. Eklenti ikili dosyaları Java5 sisteminde çalışmasına rağmen UML oluşturması için sınıfları ekrana sürüklediğimizde java.lang.NoSuchMethodError: java.util.Arrays.copyOf([Ljava/lang/Object;I)[Ljava/lang/Object; hatası alıyoruz. Bunun sebebi ise Arrays.copyOf() metodunun Java6 ile yeni gelmiş olması.

Nasıl düzelttim?

Gelelim çözüme. Şanslıyız ki eklentimiz açık kaynak kodlu. Aslında bahsetmedim ama sorunun kaynağını bulabilmek için de projenin kaynak kodunu inceledim. Şimdi tek kalan şey bunu düzeltmek, test etmek ve geliştiriciye yollamak. Bunun için Proje kodunu SVN’den indirip açtım ve JDK 1.0’dan beri varolan System.arraycopy() metodunu kullandım. Daha sonra düzenlenmiş kod ile eklenti dosyasını yeniden oluşturup kendi oluşturduğum dosyadan kurdum. Ve, evet eklenti olması gerektiği gibi çalıştı ve sınıflarda UML diyagramı oluşturdu. Ardından yamayı oluşturarak projenin ulaştığım iki sitede (Sourceforge ve Java.net) yer alan hata kayıt sistemlerine bildirdim.

Hata Kayıtları

Bir Yanıt to “AmaterasUML: Açık kaynak ve uyumluluk üzerine bir hikaye”

  1. okanakyuz said

    işte bilinçli yazılımcı

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

 
%d blogcu bunu beğendi: