Liferay Portal ve Portlet Geliştirme
Bu yazı liferay portlet uygulamaları geliştirmek isteyen ve ne forumlarında ne bloglarında ne de kendi dökümantasyonunda bu konu ile ilgili yeterli bilgi bulamayan geliştiriciler için yazılmıştır.
Son bir kaç gündür liferay portalı araştırıyorum. Genel izlenimim jetspeed ve open portal’a henüz bakmamış olsam da başarılı olduğudur. Fakat başka bir açık kaynak kodlu portal çözümü olan pluto’yu da başarız bulduğumu belirtmek istiyorum. Gelelim konumuza eğer daha önceden bir portlet uygulaması geliştirmiş iseniz zaten portlet uygulamasının da bir web uygulaması olduğunu bilirsiniz. Portlet uygulamasında web.xml haricinde bir de porlet.xml mevcuttur. portlet.xml portlet ile ilgili bir takım bilgileri içerir. (portlet nesnesinin adı, desteklediği modlar, dil dosyası adı, portlet adı, açıklaması vb.) Liferay portlet projesi için de bunlar geçerlidir. Fakat bunun haricinde bir takım başka xml dosyalarına da ihtiyaç duyuyor. (liferay-display.xml, liferay-portlet.xml vb.) Tabi bu xml ve konfigürayon dosyalarının elle oluşturulması büyük külfet. Bu durumda bunu en pratik şekilde nasıl yapabiliriz sorusu soruluyor. Soruyu başka türlü sormak gerekirse liferay portlet projesi geliştirmek için hangi ortamı kullanmalıyız bunun için bir ide var mı?
Liferay geliştiricilerinin bizler için hazırlamış oldukları sdk’lar mevcut. Sdk’lar diyorum çünkü iki farklı alternatif geliştirmişler. Birincisi Eclipse’e entegre edilebilen extention environment kütüphanesi ve eclipse pluginleri. ext ortamı ile liferay’in geliştirilmesine de yardımcı olmak mümkün. Sadece portlet uygulaması geliştirmek için ext ortamının hazırlanması bence gereksizdi. Bu sebeble ayrıca ben de ortamı kurmadığım için bu kısmı geçiyorum.
İkincisi ise plug-in sdk adını verdileri bir ortam. Terminal (ya da komut satırı) ‘ından ./createPortlet.sh ya da bat dosyasını çalıştımanız yeterli. (Apache ant’a gereksinim duyuyor)Bu şekilde basit bir liferay portlet projesi iskeleti oluşturulabiliyor. Gerisi yine bize kalmış. Yani portletlerimizde jsf bileşenleri kullanmak istersek ilgili jar dosyalarını lib altına atmak ve faces-config.xml oluşturmak gibi işlemleri plugin sdk bizim için yapmıyor. Yeri gelmişken liferay dökümantasyonunun da güncel olmaması ve dağınık olması da oldukça can sıkıcı. Gerçi bu konuda ibm’in eline su dökemezler ama… neyse konuy dağıtmadan devam edelim.
Artık üçüncü gün sonunda ben liferay’den vazgeçmek üzereyken bir yerde netbeans için geliştirilmiş portal pack gözüme çarptı. jsr 286 portlet geliştirme yetisi olan ayrıca geliştirdiğimiz uygulamaları Glassfish Web Space Server, Liferay Portal Server 5.1.x/5.2.x, Open Portal, Sun Java System Portal gibi ortamlara deploy etmeyi mümkün kılan bir paket. Bu arada Sun firmasının liferay’i satın aldığına ait duyumlar aldım ama ne kadar doğru bilemiyorum. Belki bu sebebten dolayıda netbeans ile destek vermiş olabilir. Netbeans Portal Pack şu an versiyon 3.o mevcut. Kurulum ve kullanım da oldukça kolay. Öncelikle paketi download adip. Bir dizin altına açıyoruz. Sonrasında netbeans ide’nin Tools-Plugin menüsünü tılayarak açılan pencenin Downloaded sekmesine gelip add plugin butonunu kullanarak biraz önce bir dizin altına açtığımız portal pack dosyalarının tamamını seçip install ediyoruz. Portal pack plugin-in’leri kullanıma hazır.
Şimdi de basit bir liferay portlet projesi geliştirip çalıştıralım. Fakat bunun öncesinde liferay’in sitesinden herhangibir bundled portal’ı indirdiğinizi ve bilgisayarınızda bir dizin altına açtığınızı varsayıyorum. (Örneğin /opt/lferay dizinide açalım) Ben tomcat 6.0 bundled veriyonunu kullanıyorum. Netbeans ide’den File-New Project ile yeni bir proje oluşturacağız. Açılan pencerede Java Web ve Web Application’ı seçiyoruz. İleri deyip proje adı ve lokasyonunu da belirledikten sonra bir daha ileri tıklıyoruz. Server ayarlarında server olarak Liferay Portal Server 5.1.x/5.2.x seçiyoruz. Fakat ilk kullanımda combobox’ta olmayacaktır bu sebeble yandaki add butonu ile Liferay Portal Server ekliyeceğiz. Bunun için add butonuna tıkladığımızda açılan pencerede Liferay Portal Server’ı seçip bir sonraki adımda server tipini tomcat 6.0, Catalina Home ve Catalina Base değerlerinde de /opt/liferay/tomcat-6.0.18 yolunu giriyoruz yada yazıyoruz. (biraz önce bundled liferay dosyasını /opt/liferay dizinine açmıştım). Finish diyerek server tanımlama işlemini tamamlıyoruz. Proje oluşturma adımlarına kaldığımız yerden devam edelim. İleri diyerek Framework ayarlarına geçiyoruz. Bu kısımda öncelikle portlet projesi olacağı için Portlet Support’u işeretliyelim. Alt taraftaki portlet versiyonunu 2.0 seçelim ve isteğe bağlı olarak portlet adı kısa ad ve açıklama alanlarını değiştirebiliriz. Ayrıca ben faces bileşenlerini kullandığımdan ötürü javaserver faces’ı da işaretledim. Finish butonu ile işlemimizi tamamlıyoruz. Netbeans bizim için gerekli xml dosyalarını oluşturuyor ayrıca gerekli jar dosyalarını da proje kütüphanesine ekliyor. Büyük kolaylık
Portlet’in kullandığı jsp dosyalarını Web Page – jsp altında görebiliyoruz. Portlet uygulamamızı deploy etmek için tek yapmamız gereken projeye sağ tıklayıp deploy’u tıklamak. Netbeans deploy işlemini bitirdikten sonra browser’ın adres çubuğuna http://localhost:8080 yazarak liferay portal’ı açalım. Eğer portal’a admin kullanıcısı ile login olursanız (default değerler user: bruno@7cogs.com pass: bruno) sağ üst taraftaki aparatta Add Application’ı seçeneğini görebilirsiniz demektir. Üzerine gelince açılan menüden Add application’ı seçerek açılan pencerede arama kutucuğuna eğer değiştirmediyseniz WebApplicationX şeklinde olan portlet ismini yazarak portletleri filtreleyebiliriz. Ve son olarak deploy ettiğimiz portleti add diyerek sayfamıza ekleyelim.
Görüldüğü üzere liferay portal üzerinde sadece bizim yazdığımız portlet uygulamaları yok. Bunun haricinde kullanabileceğimiz bir çok alternatif hazır portlet uygulamacıkları da mevcut.
October 5, 2009 at 1:01 pm | admin
Paylaşımın için teşekkür ederiz.
October 5, 2009 at 1:17 pm | Ali BAKAN
rica ederim. biz de size teşekkür ederiz.
)