27 Mayıs 2008 Salı

Java ile Geliştirilen Web Uygulamalarında Ortak Konfigürasyon

Bir WEB uygulaması pek çok ögeden oluşur. Bu ögelerin herbirinde ayrı ayrı konfigürasyon gerçekleştirmek bakımı zorlaştırabileceği gibi örneğin veritabanının parolasının değiştirilmesi, IP adresinin değiştirilmesi gibi durumlarda unutma sonucu pek çok istenmeyen duruma da neden olabilir.

Ip adresi, "connection string", kullanıcı adı, Url gibi geliştirilen pek çok Web tabanlı Java uygulamalarında kodun içerisinde yer alan tanımlamalar tembel :) yazılım geliştiriciler tarafından kullanıldığını bilmekteyiz. Konfigürasyonda olabilecek değişiklikler karşısında kabusa varan sorunlar yaşanır. Geliştirilen projelerin iyi dokümante edilmemesi ve geliştirici kılavuzlarının az veya yetersiz olması, zaman içerisinde güncellenmemesi de başlıbaşına bir sorundur. En sık karşılaşılan konfigürasyon problemlerini aşmak ve ortak kültürü yakalayabilmek için jar, war dosyalarının kendi içlerinde "properties" tarzı dosyalarda bu bilgileri tutmak yerine ortak bir konfigürasyon havuzu kullanılması yerinde olacaktır.

TOBBconfigUtil kütüphanesi ResourceBundle sınıfından yararlanır. Bu sınıf ile “bundle” dosyasından istenen bir anahtar kelimeye karşılık gelen değeri okunur ve configGetValue metodu okunan değeri iletir. Konfigürasyon ile ilgili anahtar kelime ve karşılıkları bu kütüphane içerisinde bulunan konfigurasyon.properties dosyasına kaydedilir. Bu sayede her bir uygulamanın içerisinde konfigürasyon verilerini tutmak gerekmez. Örneğin bu jar dosyası Tomcat’in common/lib/ext klasörü veya Sun AS 9.1 (GlassFish) domains/domain1/lib içerisine konulduğu taktirde diğer uygulamaların yapacağı tek şey bu metodu çağırmaktan ibaret olacaktır. Bu kütüpaheyi değişiklik yapmaksızın kullanmak istediğinizde jar dosyasını koyduğunuz yerde TOBBConfig isimli bir klasör yaratmalı ve bu klasörün içerisinde konfigurasyon.properties isimli bir metin tipinde dosya yaratmanız gerekir.



TOBBConfigUtil Java kütüpanesi kaynak kodları:



TOBBConfigUtil.jar dosyası:



TOBBConfigUtil Java kütüpanesinde yer alan configUtils.java dosyası:




package tr.org.tobb.config;


/**
*
* @author Haluk ERYUKSEL
*/
import java.util.ResourceBundle;

public class configUtils{

public configUtils() {
}

public String configGetValue(String key) {

try {
ResourceBundle bundle =ResourceBundle.getBundle("TOBBConfig.konfigurasyon");
return bundle.getString(key);
} catch (Exception e) {
e.printStackTrace(); // sistem loguna yaz.
return "Hata : "+e.getMessage();
}

}


}



TOBBConfigUtil projesi kök dizinindeki MANIFEST.MF dosyası içeriği :

Class-Path: .






Örnek Konfigurasyon.properties dosyası :

MySqlUser=root
MySqlPassword=xxxxx
MySqlDriver=com.mysql.jdbc.Driver
MySqlConnectString=jdbc\:mysql\://localhost/


Konfigurasyon.properties dosyası TOBBconfigUtil.jar dosyasının olduğu yerde TOBBConfig isimli bir klasör içerisinde olmalıdır.


Kullanımı :
Kendi uygulamanız içerisinden bu kütüphaneyi kullanmak için TOBBconfigUtil.jar dosyasını CLASSPATH’e tanımlamanız gerekir. Gerekli tanımlamayı gerçekleştirdikten sonra aşağıdaki gibi kullanabilirsiniz.
configUtils cfg = new configUtil
String driver = cfg.configGetValue("MySqlDriver");
String connectString = cfg.configGetValue("MySqlConnectString");

Hiç yorum yok: