26 Temmuz 2010 Pazartesi

Openlaszlo'da debug ya da non-debug modda çalışmanın sınıf metot erişimine etkileri

Geçen günlerde yaşadığım bir problem sayesinde Openlaszlo derleyicisinin bir davranışı hakkında bildi sahibi oldum. Sorun şu şekilde idi:
Uygulama geliştirme ortamında debug modda çalışmalar yapıyordum. Bu şekilde uygulamanın çalışma anındaki gidişatını takip edebiliyordum. Uzunca bir süre bu şekilde çalıştığım için varolan bir problemi de farketmem mümkün olmadı. Uygulamayı non-debug(debug kapalı) modda çalıştırdığım zaman paylaşılan nesne ve rtmp bağlantı sınıfları üzerindeki metotların flash sunucusu tarafından tetiklenmediğini farkettim. Sorunu Openlaszlo kullanıcı listesine sorduğum zaman ise; geliştiricilerden şu şekilde bir yanıt aldım: "debug modda çalışırken OL sınıfları public, non-debug modda ise public değildir. Bu sorunu giderebilmek için ise; metotlarına başvurulacak sınıfları, bir script içerisinde public tanımlayıcısı şeklinde belirtmek gereklidir."
Sınıfların public tanımlayıcısı ile gerçekleştirimlerinde ise, temsil edilecek olan sınıfın metotlarının çağırımı, yeni oluşturulan ara sınıf metodu içerisinde yapılıyor.


public class SharedObjectChatMediator {
var client;
public function SharedObjectChatMediator (client) {
this.client = client;
}
public function writeMessage(username, msg) {
this.client.writeMessage(username, msg);
}
}


Yukarıda shared object sınıfının (parametre olan client) public olarak gerçekleştirimi bulunmaktadır. Örneğin writeMessage metodu çağrıldığında aslında parametre olarak gelen shared object'in (client) writeMessage metodu çağrılıyor.

2 Temmuz 2010 Cuma

Javadoc exception: "java.util.MissingResourceException: Can’t find resource for..."

Javadoc oluştururken, başlıkta da belirttiğim gibi şu şekilde bir hata alıyor isek:

java.util.MissingResourceException: Can’t find resource for bundle com.sun.tools.doclets. internal.toolkit.resources.doclets, key doclet.interface

yapmamız gereken:
javadoc paramatresi olarak "-locale en_US" eklememiz gerekli. Dil ayarı tr_TR olduğu durumda bu şekilde bir hata ile karşılaşabilirsiniz.