JSF ViewScope ve JVM Memory Problemleri

Şu sıralar büyük bir müşterimizin kurumsal web uygulamasının performans optimizasyonu üzerinde çalışıyoruz. Süreç sonunda uygulamanın kaldırabileceği kullanıcı sayısında ve istekleri ele alma hızında önemli ölçüde iyileşme oldu. Bu iyileştirme sürecinin bir bölümünü de memory optimizasyonuna ayırdık. Uygulamanın ön yüzü JSF ile geliştirilmişti. Bu bloğu takip edenler JSF hakkında ne güzel(!) hisler beslediğimi bilirler. JSF deki […]

Read More →
Neden JSF Değil?

Son zamanlarda bana neden JSF’i terk ettiğimi sıkça soruyorlar. Aslında terk ettiğim sadece JSF değil, kurumsal web uygulamalarında doğrudan XML ve Javascript ile UI geliştirmeyi zorlayan her türlü UI teknolojisi. Kurumsal web uygulamalarını isteyen müşterilerimiz desktop da ne yapıyorlarsa aynısını web üzerinde de yapmak isterken, yazılım geliştiriler ise UI programlamayı XML türevi taglibler ve Javascript […]

Read More →
Spring View Scope For JSF 2 Users

In JSF 2 there are several new scopes introduced for managed beans and one of them is view scope, and as any developer who deal with JSF and Spring knows that it is much better to define your JSF managed beans in Spring application context instead of dealing with primitive DI container of JSF itself. […]

Read More →
Configuring web.xml According to Target Deployment Platform

It is a very common requirement to configure JEE web applications according to their current runtime environment. In JEE, web.xml file is aimed to be the configuration unit of those web applications. Unfortunately, it is not designed with such a requirement in mind. For example, we use JSF and Facelets in our current project. In […]

Read More →
Customizing JSF Required Field Messages per Component Instance

JSF is nice that it provides some useful built-in features to validate entered values or if provided any required one, but it fails at providing enough mechanism to let developers customize those features at the level of each component instance. This is a common drawback of JSF specification in general. We specify that user input […]

Read More →
JSFUnit ve Jetty ile WicketTester Ouşturma Deneyimleri

Geçenlerde JSFUnit’i değişikliğe uğratarak WicketTester benzeri bir test altyapısı kurmaya çalıştım. WicketTester, istemci çağrılarını tek bir noktada ele alıyor. JSFUnit, HtmlUnit, Selenium gibi istemci- sunucu iletişimi söz konusu olmuyor. Ancak JSFUnit in-container test framework. Bu nedenle uygulamanın testlerle birlikte sunucuya deploy edilmesini ve sunucunun çalıştırılmasını bekliyor. HtmlUnit vasıtası ile sunucu tarafında uygulamaya request’ler göndererek JSFSession […]

Read More →
How to create a custom FacesContext

Although I am not happy with several issues in JSF spec, I like its customizability. A couple of days ago, I needed to introduce Mediator pattern in my case studies. FacesContext instance seemed to be a good candidate as Mediator object. You need to execute three easy steps to introduce custom FacesContext implementation into your […]

Read More →
Integrating JSFUnit To Your Project

Actually I am not a big fun of in-container unit testing approaches. They have longer execution times, e.g. container and database startup, intialization times etc. In addition, they create configuration complexity in terms of packaging of tests and deployment of application together with them. Anyway, recently I needed to examine JSFUnit solution more closely for […]

Read More →
Clean Up Your ThreadLocals

Forgetting to clean up ThreadLocal variables might really hurt you. Let’s see how. I have several integration tests with Spring WebFlow and JSF and in one of them I have an setUp method like that: @Before public void setUp() {      RequestContextHolder.setRequestContext(new MockRequestContext()); } I just create a MockRequestContext and put it into RequestContextHolder so […]

Read More →
JSF Required Validation Still Giving Headaches…

For some time ago, we had decided not to use JSF’s required attribute and instead handle required validation with a validator object implementing Validator interface, attached to current UIInput component. By that way, we were able to develop validation bypass mechanism while being able to update model, and group validation capability which let us to […]

Read More →