<$BlogRSDURL$>

XStream 

Java nesnelerinin değerlerini serileştirme işlemi ( serialization ) ile saklayabilir ve aynı şekilde geri okuyabiliriz. Bu da bize o nesnelerin değerlerini kalıcı hale getirmek ve taşımak için olanak sağlar. Fakat doğrudan java'nın yöntemlerini kullandığımızda oluşacak olan veri ikili olacak, okunurluğu ve taşınabilirliği ile ilgili sorunlar çıkacaktır. Fakat bu saklama işlemi XML dosyalara yapılırlarsa sadece Java nesneleri arasında değil diğer teknolojiler arasında da taşınabilir olacaklar, düz metin olarak kesinlikle okunur olacaklardır.

XML dosyalarına nesne saklama işlemi için kullanılabilecek çeşitli yöntemler bulunmakta. Kendi yazacağınız küçük kod parçaları ilk aklımıza gelen. Bunun dışında XMLEncoder JavaBean'ler için kullanılabilir. Apache XMLBeans kütüphaneleri kullanılarak java nesneleri ile XML teknolojileri ve verileri arasında daha güçlü bağlar sağlanabilir.

XStream'in bütün bu alternatifler karşısında bize sunduğu ise, basit ve anlaşılır bir arayüz ile POJO'ları XML dosyalara yazması ve okumasıdır. XStream bir veri bağdaştırma ( binding ) değil, bir serileştirme ( serialization ) kütüphanesidir.

Her hangi bir nesneyi XStream kullanarak XML'e dönüştürmek için 2 satır kod yeterlidir. Bir nesneyi XML olarak yazmak için xstream.toXML( obj ) ve geri okumak için xstream.toXML( xml ) fonsiyonlarını kullanmak yeterlidir.

XStream sitesinde daha detaylı halini bulabileceğiniz iki dakikalık kılavuz'da verilen örneği tekrarlarsak :

class Person {
private String name;
// ...
}

XStream xstream = new XStream();

Person hakan = new Person("Hakan Uygun");
String xml = xstream.toXML( hakan );

Person yeniHakan = xstream.fromXML( xml );

XStream bu kolay kullanımının yanında daha detaylı işlemler gerektiğinde araya girilip eklenmesini sağlayacak yapıyıda barındırmaktadır. Örneğin, istediğiniz DOM parser kütüphanesini kullanabilirsiz. Verilerinizin XML'le çevrim standartlarını değiştirmek için kendi çeviricilerinizi yazabilirsiniz.

Özellikle küçük uygulamalarda veri saklamak ve taşımak için çok kullanışlı olan XStream, Sun JDK 1.4 ve üzeri için ek yetenekleri olmakla birlikte, Java 1.3 ve üzerinde çalışmaktadır.

Joe Walnes, Mauro Talevi, Jason van Zyl, Nat Pryce, Dan North tarafından geliştirilen XStream, BSD lisansı ile Codehouse tarafından yayınlanmaktadır.

0 Yorum:

Cevze, Java yazılım geliştirme ortamı ile ilgili konuları içeren bir Hakan Uygun weblogudur. Yapımında Blogger-Templates'den şablon kullanımıştır. Ayrıca Cezve resmi de mehmetefendi.com'dan alınmıştır.