Salı, Ekim 24, 2006

Izpack (Java Based Installer)

Yaklaşık 4 sene evvel eski şirketimde benden güzel bir installer (mümkünse bedava) bulmamı istemişlerdi. Bu installer'ı kullanarak in-house olarak geliştirdiğimiz java tabanlı platform bağımsız framewok'u müşterilerimize daha rahat dağıtabilecektik. Framework platform bağımsız olduğu için installer da platform bağımsız olmalı, tüm işletim sistemlerinde çalışabilmeliydi. O zaman open-source ürünler yavaş yavaş artmaya başlamıştı ama henüz ticari firmalar open-source ürünlere pek şans tanımıyordu. O zamana kadar şirketimizde ticari anlamda kullandığımız ilk ciddi java tabanlı open-source ürün JBoss'tu.

Java'ya ve open-source dünyaya olan sevgimden dolayı google search yaparken bir Fransız lisans öğrencisi olan (şimdi doktorasını bitirmek üzere) Julien Ponge'un geliştirdiği ve open-source olarak dağıttığı Izpack'e denk geldik. Julien Ponge bu işe nasıl başladığını şöyle anlatmış:

IzPack was started in 2001 as a monolithic installers generation system. It had a good start and I was really surprised of getting a strong early support of individuals and companies. The same summer I decided to rewrite everything and make a modular IzPack as we now know.

Java ve xml tabanlı olması ve kolay konfigüre edilebilir olması nedeniyle tam aradığımız ürün olduğunu fark ettik. İşte Izpack'in göze çarpan özellikleri:

Main features
  • XML-based installer descriptors
  • Uses the maximum Jar archives compression level
  • Apache Ant integration (Kurulum sonrası ant ile kod derlemesi yaptırabiliyorsunuz)
  • Great flexibility and modularity, it is very easy to extend IzPack
  • No native code is required, but you can extend IzPack with native code
  • Shortcuts creation system (Win32 and FreeDesktop.org)
  • Flexible and powerful user input panel
  • Automatic uninstaller creation
  • Easy localization with XML langpacks: 16 langpacks (Türkçe dahil) are provided by default
  • Variable substitution system
  • OS-specific scripts interaction
  • ... and many more!

Aranızda Izpack bizim nerde işimize yarayacak diye soranlarınız olabilir. Biz daha evvel 2 farklı iş için Izpack'i bol bol kullandık:


1) Müşterilerinize ürünlerinizi dağıtmak için. Uygulamanızda özellikle kurulum sırasında tanımlanan IP, port, database url, vs. gibi değişkenlerden bol var ise ve bu değerleri birden çok konfigürasyon dosyasına tanımlamanız gerekiyorsa. Hele bir de kurulum sonrası bu konfigürasyon dosyalarını jar, war veya ear içine tekrar koymanız gerekiyorsa.

Biz genelde İç Müşteriye ürün veriyoruz zip dosyası şeklinde ne gerek var installer hazırlamaya diyeilirsiniz. İç müşteri de, dış müşteri gibi ilgiyi hak ediyor. Manuel kurulumlarda (test veya production) bir konfigürasyonun parametresinin değiştirilmesinin unutulduğu eminim çok olmuştur. Halbuki kurulum sırasında tüm parametrelerin listelendiği bir ekranın bulunması bu tip hataları minimuma indirir.

2) Developer ortamlarını hazırlamak için. Developer'lar aynı anda birden fazla uygulama geliştirebiliyor. Her bir uygulamanın kullandığı ayrı eclipse pluginleri, jar dosyaları, classpath tanımları, uygulama sunucusu dosyaları ve tanımları (datasource, applications) vs. vs. olabiliyor. Genelde yeni bir developer işe başladığında veya eski bir developer bilgisayarına format attığında local development ortamlarını kısa sürede ayağa kaldırmak büyük dert olabilir. Bunun için developerlar genelde diğer bir arkadaşının dosyalarını aynen kendi local'ine kopyalar, tabii bu da temiz bir kurulum olmaz.

Ant kullanarak developer ortamlarının Izpack kurulum dosyalarını düzenli ve otomatik olarak hazırlayabilirsiniz.

Detaylı bilgiyi Izpack'in sitesinden bulabilirsiniz : http://www.izforge.com/izpack/

0 Yorum:

Yorum Gönder

Kaydol: Kayıt Yorumları [Atom]

<< Ana Sayfa