Hybris Dosya Yapısı, Extension Oluşturma: Bölüm 2
Bir önceki yazımızda Hybris’in ne olduğunu ve ne için kullanılabileceğine değinmiştik. Aynı zamanda Hybris’in B2C yapısına sahip e-ticaret sitesinin kurulumunu da gerçekleştirmiştik. (Bir önceki yazıya gitmek isterseniz buraya tıklayabilirsiniz.) Bu bölümde ise kendimize ait bir eklentiyi nasıl oluşturacağımızı ve bunu hybris projemize nasıl dahil edeceğimizi öğreneceğiz.
Hybris’in Dosya Yapısı
Eklenti oluşturmayı öğrenmeden önce dosyaların nerede oluştuğu nasıl oluştuğu, hangi komutların kullanılması gerektiğini açıklamak gerekiyor.
- bin ===> Bu klasörün altında sizin veya Hybris geliştiricileri tarafından geliştirilen modül, eklenti, entegrasyon veya uygulamaların bulunduğu klasördür.
- config ===> bin klasörü altında bulunan modül, eklenti, entegrasyon veya uygulamaların konfigürasyonlarını yapabileceğimiz bir klasördür. Oluşturacağımız eklentileri bu dosya altında konfigüre ederek Hybris’e dahil edeceğiz. Burası ile haşir neşir olacağımız için şuan çok üstünde durmuyorum.
- data ===> İsminden de anlaşılacağı üzere veri klasörü olarak geçmektedir. Ne tür veriler diyecek olursanız da şöyle açıklamaya çalışayım; Verilerimizin tutulduğu HSQLDB veritabanı, Solr ile dökümante ettiğimiz veriler, medya olarak sakladığımız görüntü veya herhangi bir dosya uzantılı veriyi tutabilmemizi sağlayan klasördür. İlerde şöyle bir soru sorabilirsiniz “Bu var olan verilerin tutulduğu veritanabını görmek istiyorum nerede bu?” bunun cevabı bu klasörün altında olacaktır.
- log ===> Hybris platformunda veya JDBC ile ilgili oluşan hata, bilgilendirme veya uyarı mesajların tutulduğu klasördür.
- roles ===> Proje ilk oluşturulduğunda boş olarak gelmektedir ancak daha sonra roller oluşturulduğunda buraya o roller ile ilgili klasörler ve dosyalar oluşmaktadır.
- temp ===> ant all komutu ile oluşan geçici dosyaların tutulduğu klasördür.
Hybris dosyalarını kabataslak tanıdığımıza göre eklenti nedir ve nasıl oluşturulur aşamasına geçebiliriz. Eğer detaylı olarak hybris klasörlerini incelemek isterseniz buradan erişebilirsiniz.
Eklenti Nedir ve Nasıl Oluşturulur?
Eklentiyi tek kelime ile açıklamak hem kafa karışıklığına hemde ne olduğunu anlamakta sorun yaratacağından maddeler halinde eklentiler ile neler yapılabileceğini yazmayı tercih ettim ama özetle şöyle diyebilirim; hybris platformunu genişletmek amacıyla kullanılan program parçacıklarıdır.
- Hybris projesinde var olan program parçacıklarını değiştirmek için kullanılabilir. (hybriste var olan eklentinin ezilmesi ile oluşturulan eklenti tipleridir.)
- Hybris tarafından sunulmayan yapılar oluşturmak için kullanılabilir.(tamamen geliştirici tarafından geliştirilen eklentilerdir.)
- İki farklı yazılım arasında entegrasyon sağlamak için kullanılabilir.(Entegre olunacak olan yapı ile koordineli olarak geliştirilen eklentilerdir.)
Eklentinin en önemli özellği projeden rahatlıkla çıkarılabilir ve tekrar takılabilir olmasıdır. (Burada iş yazılımcı tarafına düşüyor ve eklentinin bu amaçla geliştirilmesi gerektiğini bilmesi gerekiyor. Bu yüzden bağımlılıklara dikkat edip ona göre geliştirmesine yapmalıdır.) Eklenti projeden çıkarıldığı zaman herhangi ek bir geliştirme yapılmadan projenin eski yapısıyla çalışması mümkün olabilmelidr aksi taktirde iyi geliştirilen bir eklenti değildir.
Eklenti kavramını anladığımıza göre şimdi eklenti oluşturalım; Öncelikle hybris platformumuzun kapalı halde olması gerekiyor böylece oluşturacağımız eklentiyi ekledikten sonra ant komuları ile tekrardan derleyip dosyaları oluşturduktan sonra başlatabileceğiz.
. ./setantenv.sh
ant extgen
Yukarıdaki komutlar çalıştırıldıktan sonra karşımıza aşağıdaki gibi bir ekran çıkıyor.
Yukarıda bulunan resimde kırmızı ile işaretli olan kısım varsayılan olarak seçilmiş eklenti şablonunu göstermektedir, siz doğrudan enter tuşuna basarsanız bu eklenti şablonundan yeni bir eklenti oluşturmaya başlayacaktır. Sarı ile işaretli olan kısımlar ise hybris’in sizin için işe yarayacağını düşündüğü diğer eklenti şablonlarıdır. Biz şimdilik basit bir yapı ile ilerleyeceğimiz için varsayılan şablon ile devam ediyoruz.
Enter tuşuna bastıktan sonra yukarıdaki resimde kırmızı ile işaretlenmiş kısımda eklentimize isim vermek için bizden bir isim bekliyor, ben eklentinin ismini hellohybris diye koyuyorum.(Eklentilere isim verilirken dikkat edilmelidir, oluşturulan bir eklentinin ismini değiştirmek oldukça zordur.) İsmi verdikten sonra enter tuşuna basıp devam ediyoruz.
Şimdide oluşturduğunuz eklenti için paket ismi vermemizi istiyor, ben com.ugurhalil.hellohybris diye koyuyorum.
Paket ismi girildikten sonra eklenti oluşturma işlemini bitirmiş oluyoruz. Son gelinen ekranda size bu eklentinin nerede oluşturulduğu ve nasıl sisteme dahil edileceğinin bilgisini vermektedir.
Oluşturulan Eklentinin Projeye Dahil Edilmesi
İlk adımda “<exten…” ile başlayan ifadeyi localextensions.xml dosyasına eklemenizi istiyor. Burada küçük bir noktaya değinmek istiyorum, size verilen “<extension dir=”/home/halilugur….. “ ifadesi, eklentinin bilgisayardaki tam dizinini belirterek veriyor. Bunun nedeni aynı isme sahip iki eklenti var ise birbirleri ile karışmasını önlemek amacı ile yapıyor, eğer o isimde sadece birtane eklentiniz var ise aşağıdaki şekilde kullanılması localextensions.xml dosyasının okunaklığı açısından daha verimli olacaktır. Örnek kullanım;
<extension name='hellohybris' />
Eklentiyi localextensions.xml dosyasına ekledikten sonra aşağıda bulunan tek satırlık komutu çalıştırıyoruz.
hybrisProject/hybris/bin/platform klasörün altına giderek;
. ./setantenv.sh && ant clean all && ./hybrisserver.sh debug
İşlemler bittikten sonra tarayıcınızı açıp aşağıdaki url’yi girin;
https://electronics.local:9002/hellohybris/
Hybris platformunu bir önceki yazımızda ant initialize çekerek hazır hale getirmiştik. Bu yüzden yeni eklediğimiz eklentinin logosu hybris tarafında oluşmadığı için arka tarafta hata fırlatıyor ve eklentimizin açılmamasına neden oluyor.
Yukarıda bulunan resimdeki gibi bir hata alıyorsanız platformunuza ant initialize çekin daha sonra tekrar denediğinizde böyle bir sorun ile karşılaşmadığınızı göreceksiniz.
Platformu sıfırladıktan sonra tekrar url’yi test ettiğimizde karşımıza aşağıdaki gibi bir görüntü çıkmasını bekliyoruz.
Eklentimiz artık özelleştirilebilir ve özellik eklenebilir duruma geldi. Son olarak eklentimizin dosya yapısına da göz atalım ve bu yazıyı sonlandıralım.
Eklentimizi bin/custom klasörü altında bulabiliriz. Bu klasör bizim oluşturuduğumuz eklentilerin veya ezdiğimiz hybris eklentilerin yer aldığı klasördür.
- classes ===> derlenen java dosyaların bulunduğu klasördür.
- gnsrc ===> hybris tarafından otomotik oluşturulan dosyaların bulunduğu klasördür.
- lib ===> eklentimize ekstradan eklemek istediğimiz kütüphanlerin klasörüdür.
- resources ===> Kaynakların oluşturulduğu klasördür.
- src ===> Java dosyaların bulunduğu klasördür.
- testsrc ===> Oluşturduğumuz java sınıflarının test sınıflarını yazdığımız klasördür.
- web ===> eklentimizin bir arayüzü var ise arayüzün geliştirilebilmesini sağlayan klasördür.
- .externalToolBuilders ve .settings ===> eclipse ile ilgili klasörlerdir.
Klasör altında bulunan dosyaları daha sonra detaylı bir şekilde inceleyeceğiz ve her birinin ne işe yaradığına değineceğiz. Şimdilik hoşçakalın esenle kalın.
Bir sonraki hybris yazısında görüşmek üzere.