Seam-gen Framework
Seam içerisinde kod üretmek için iki yöntem vardır. Bunlardan birincisi eclipse ile üretmek diğeri ise ant yardımı ile console ekranından çalışmak.
Eclipse kullanırken ekranda New -> Seam Entity dediğimiz zaman entity template leri ile kod oluşturma sağlanır. Bu durumda Ogrenci adında bir entity oluşturmuşsak bizim için Ogrenci.xhtml OgrenciList.xhtml OgrenciHome.java OgrenciList.java ve Ogrenci.java oluşturulur. Bu kodlar template ler vasıtasıyla oluşturulmuştur.
Bu template lere Seam runtime içerisinde seam-gen altında ulaşabilirsiniz. Örneğin bende aşağıdaki dizin içerisinde.
C:\seamDev\jboss-seam-2.2.2.Final\seam-gen
Peki burada hangi template ler bulunuyor ? Örneğin Ogrenci.java yı oluşturan template seam-gen/src/ altında Entity.java dır.
Seam içerisindeki code generation yapısı HibernateUtil den gelmektedir. Dolayısıyla FreeMarker template mimarisini kullanmaktadır. Eğer daha detaylı bir kod üretimi istiyorsanız FreeMarker ı ve Hibernate code generation mimarisini incelemenizde fayda var.
Aşağıda bendeki Entity.java içeriği bulunuyor.
Bu template içerisinde dışarıdan alınan parametreler bulunmaktadır. Örneğin @entityName@ entity ismini ifadece eder. Buna göre yeni bir entity oluştururken ekrandan girdiğimiz entity sınıfı ismi buraya parametre olarak gitmektedir.
Bu durumda template ler içerisinde oynayarak istediğimiz çıktıları üretme şansına sahibiz.
Bunlar haricinde ant scriptleri ike kod üretmek için aşağıdaki komutları kullanabilirsiniz. Bu komutlar seam-gen/build.xml de tanımlı bulunmaktadır. build.properties ise başlangıç tanımlarının bulunduğu tanım dosyasıdır. Bu dosya console üzerinden proje oluşturduğumuz anda üretilmektedir. Bununla ilgili aşağıdaki yazıyı inceleyebilirsiniz.
http://www.melihsakarya.com/2011/06/seam-gen-ile-console-uzerinden-proje-olusturma/
C:\seam\jboss-seam>seam setup;
Seam in proje tanım dosyasını oluşturur.
C:\seam\jboss-seam>seam new-project
Proje oluşturur
C:\seam\jboss-seam>seam new-entity
Templateler ile yeni bir entity ve arayüzlerini oluşturur.
C:\seam\jboss-seam>seam new-form
Örnek form ekranı ve componenti oluşturur.
C:\seam\jboss-seam>seam generate-model
Database den entitiy leri üretir.
C:\seam\jboss-seam>seam generate-entities
Database den entitiy, component ve xhtml leri üretir.
C:\seam\jboss-seam>seam generate-ui
Entity lerden component ve xhtml leri üretir.

Son Yorumlar