Java ile Web hem de acısız!

Güncel Sürüm

Güncel sürüm 1.2.0 ile beraber çok fazla yenilik ve birkaç değişiklik geliyor.

JurfaFilter

JUrfaFilter sınıfı JurfaFilter olarak değiştirildi. Bu sebeple web.xml dosyasındaki filtre tanımında güncelleme yapmanız lazım. Aksi halde java.lang.ClassNotFoundException: com.jurfa.filter.JUrfaFilter hatası alırsınız.

JurfaContext ve konfigürasyon yönetimi

Daha önceki tüm konfigürasyon bilgisi JurfaFilter sınıfı içerisinde tutuluyordu. Son değişikliklerle beraber konfigürasyon bilgisi JurfaContext sınıfında bulunuyor. Bu sayede konfigürasyon için sadece web.xml'deki filter init parametreleri ile değil programatik olarak da konfigürasyon yaratılabiliyor.

Test Odaklı Geliştirme

JurfaContext'in programatik olarak da oluşturulabilmesi sayesinde birim testleri yazarak Jurfa aksiyonlarını test edebiliyoruz. Birim testlerini web ortamı olmadan test edebilmek için aynı zamanda http alt yapısını taklit eden MockServletRequest, MockServletResponse gibi yardımcı sınıflar da Jurfa içerisine eklendi. Testler ile ilgili detaya SVN üzerindeki jurfa_test projesinde örnekleriyle beraber görebilirsiniz.

Performans

Jurfa'nın daha performanslı çalışması için kodlar refactor edilerek daha performanslı çalışacak bir kaç değişiklik yapıldı. Bunlardan en önemlisi metadata'ların uygulama ayağa kalkarken bir kere okunması ile ilgili değişiklik. Bu sayede bazı işlemler tekrarlanmıyor.

Kapsam (Scope) yetenekleri

Jurfa 1.2.0 ile yeni kapsam notasyonları (annotation) geliyor. @ApplicationScope, @SessionScope, @CookieScope notasyonları ile aksiyon sınıfları içerisinde daha az kod ile erişim kolaylığı sağlanıyor. Yeni gelen ApplicationScope sayesinde uygulama genelinde ortak bir veri kapsamına erişim sağlanıyor. Yeni notasyon olan @ActionParamIn ile Jurfa aksiyon sınıfı içindeki bir pojo içerisindeki değişkenlere @ActionParam yerleştirilebiliyor. Bu sayede sınıf kodları fazla değişkenler ile kirlenmemiş oluyor.

Ön bellek (Cache) yetenekleri

Eski cache ayarları değiştirilerek yeni ön bellek yönetiminin @Cacheable notasyonu ile yapılması sağlandı. Ayrıca LRUCache implementasyonu da projeyle beraber geliyor. Tabi bunun için commons-collections kütüphanesine ihtiyaç var.

Güvenlik

Jurfa uygulamalarının daha güvenli hale gelmesi için RequestLimiter yapısı eklendi. Bu yapı varsayılan ayarlarda kapalı. Ancak aktif hale getirildiği zaman yapılan ayarlara göre uygulamaya gelen isteklerin istatistiği toplandığı gibi, uygulama kaynaklarına yapılan istek sayıları 2 farklı statejiye göre korunabiliyor. Detaylar ayrıca aktarılacak.