Tuesday, January 4, 2011

About Estimation

Scrum Project Estimation Beyond the Near-Term?

This sort of article (that summarize ML thread) is very very valuable. Thanks to Dan Puckett.

Monday, January 3, 2011

JSF beans getter with Spring AOP

Introduction

JSF can call a getter more than once per request.

For example in the following JSF file :

<html>
<body>
<h:dataTable var="car" value="#{carService.cars}">
<h:column>
<f:facet name="header">
Model
</f:facet>
<h:outputText value="#{car.model}"/>
</h:column>

<h:column>
<f:facet name="header">
Year
</f:facet>
<h:outputText value="#{car.year}"/>
</h:column>

<h:column>
<f:facet name="header">
Manufacturer
</f:facet>
<h:outputText value="#{car.manufacturer}"/>
</h:column>
</h:dataTable>
</body>
</html>

JSF will call the carService.cars getter more than once inside the same request.

In this example, JSF calls it three times :

13:39:40 DEBUG : CarService.getCars:17 - qtp17489534-18

13:39:40 DEBUG : CarService.getCars:17 - qtp17489534-18

13:39:40 DEBUG : CarService.getCars:17 - qtp17489534-18

A getter obviously returns a value. This value can be a bean property or a calculated value.

If the value is calculated, this can potentially be a problem.

I googled a bit and found some workarounds.

  1. The first one was to include a check and see if it has already been calculated.
  2. The second one was to use the getter only to access bean properties
  3. The third one was to use Spring AOP and cache the value.


For me, the last workaround is the best one because you do not have to modify the view.

And thanks to Spring, it's quite simple to add AOP with a few annotations.

Thursday, December 30, 2010

Wednesday, December 29, 2010

Agile and Scrum

The first one : How To Complete Stories Without Leaving Bugs Behind.

The second one : Getting the Customer Involved

The third one : Does Agile Limit Financial Rewards for an Individual?

These three news summarize answers about interesting questions. They contain a lot of good links to other news, articles and books.

moreagile-manifesto

Introduction to project management with Scrum

Traps and Pitfalls of Agile Software Development

Johanna Rothman: Agile Risk Reduction for Traditional Teams

Myths of Kanban

Software craftsmanship

Smart agile by ivar jacobson

How to create a stateful Richfaces popup

This article has been published first on Javalobby

I use JSF and especially Richfaces for 1 year. During this year I had a few issues with Richfaces popups.

Richfaces popups had the following issues

  • The popup component is stored in the components tree although it is not displayed. On some use cases, the complete popup sub tree can be stored in the tree.
  • Because popups are usually displayed using javascript, there are not sync with the components tree and vice versa.
  • So popups are display off when user reloads the page, that generates inconsistent state.
  • A lot of popups on the same page, that significates a lot of rich:modalPanel components, increases file size and decreases readability.
  • Popups don't stack easily (A calls B or B calls A mean different zindex for A and B).

One of my coworker said richfaces popup component doesn’t scale because each sort of popup requires a specific declaration. The team had create a JSF fragment file that contains all the popup components whatever their domains or the business logic location in package and module.

My opinion is that a popup should be part of the UI logic. It should not be a component you add like a textbox but it would rather be a window you create with a createPopup method.

Ok let's try to improve popup logic.

Initialisation

I am Nicolas Labrot, a software engineer at 4Dconcept.

I created this blog to share my tought on development and to keep and share tought of others.

I have interrest in Java, JEE (JSF, Hibernate...), Maven, Agile, etc.

Let's start with an article I have written for DZone.