[Gelistirici] Pisi Actionsapi için Javamodules Eklentisi

Gökhan Özbulak gozbulak at pardus.org.tr
30 Mar 2011 Çar 23:04:34 EEST


Merhaba,

Pisi Actionsapi'yi java uygulamalarının paketlenmesini kolaylaştırmak amacıyla 
genişletmeyi düşünüyoruz. Bunun için aynı autotools ve pythonmodules 
modullerinde olduğu gibi derleme ve yükleme işlemlerini olabildiğince jenerik 
bir şekilde gerçekleştirmeyi sağlayan bir dizi fonksiyon içeren javamodules 
adında bir modül gerçeklenmesi gerekiyor. Bu noktada java paketleri ile 
uğraşan geliştiricilerden (ve tabi diğer tüm geliştiricilerden) geribildirim 
almak tasarımı şekillendirmek açıısndan iyi olur diye düşünüyorum. 

Modülün şu anki hali aşağıdaki gibi:

1) Derleme işlemi için varsayılan olarak Ant inşa sistemi kullanılmakta, 
ayrıca Maven gibi diğer yaygın inşa sistemlerinin kullanılması esnekliği de 
sağlanıyor. Örnek fonksiyon imzası:

def compile(build_tool = "ant", parameters = '', argument = '')

2) Paketçi derleme için gerekli direktifleri kendi doğrudan geçirmeli. Çünkü bu 
noktada yaygın bir kullanım şekli mevcut değil. Depolardaki paketler göz önüne 
alındığında Ant ile derlemek için çeşitli çağırım şekilleri:

"ant"
"ant compile" 
"ant core"
"ant build jars"
"ant jar"
"ant compile experimental"
..

3) Derleme sonucu oluşan dosyaların (jar vb.) ikamet ettiği yerler de 
çeşitlilik arz ediyor. Dosyalar genellikle kaynak kökü altında veya bazen 
göreceli olarak "build" ve "dist" dizinleri altında bulunabiliyorlar. Buradaki 
varsayılan yolun, paketçinin bu yolu yükleme fonksiyonunda ezebilmesi 
kaydıyla, kaynak kökü olmasının iyi fikir olacağını düşünüyorum.

4) Yükleme kısmı jenerikliğe en kapalı kısım. Yapılabilecek en iyi şey, 
derleme sonucu oluşan dosyaları kullanıcının yönlendirmesi 
doğrultusunda(ilgili yol altında hangi kitaplıkların kullanılacağının liste 
halinde geçirilmesi gibi) /usr/share/java altına göndermek gibi görünüyor. Bu 
noktada klasik Actionsapi modül kalıbının biraz dışına çıkılmış oluyor, ancak, 
bu durum, Ant'ın derleme işlemi için kullandığı build.xml dosyasının "make 
install" kadar kapsamlı olamamasından kaynaklanıyor.

5) /usr/share altına giden kitaplıklara ileride başka kitaplık/uygulamalar 
tarafından da erişilebilmesi için sınıfyolunun(classpath) yine modül 
tarafından ayarlanması gerekiyor. Bu noktada, modülün, ileride paketin 
kurulacağı sistemde /etc/conf.d altına gidecek sınıfyollarının tanımlandığı 
bir dosya üretmesi gerekiyor.

İyi çalışmalar
--
Gökhan Özbulak / go
Pardus -- Tübitak/UEKAE
http://www.pardus.org.tr/eng


Gelistirici mesaj listesiyle ilgili daha fazla bilgi