26 lutego 2008

Wicket 1.3.1 i Spring Framework 2.5.1 jednak współpracują

Tak niewiele było trzeba, aby przekonać Apache Wicket 1.3.1 do współpracy ze Spring Framework 2.5.1. Wczorajszy wpis "Globalizacja" obiektów Wicketa ze Spring Framework wzbudził zainteresowanie Waldiego, który swoim komentarzem z kolei sprowokował mnie do głębszego zastanowienia nad sposobem uaktualnienia trochę już zakurzonej zależności Wicket 1.3.1 od Spring Framework 2.0. Czy to nie-mavenowe rozwiązanie Waldka czy po prostu jego wizyta w moim Notatniku, ale to wystarczyło, abym wpadł na to właściwe mavenowe rozwiązanie. Coraz częściej daje się słyszeć utyskiwania na zarządzanie zależnościami przez Apache Maven 2, ale w tej sytuacji spisał się zgodnie z oczekiwaniami. Uruchomienie Spring Framework 2.5.1 oraz Wicket 1.3.1 sprowadza się do następującej zmiany w pom.xml w projekcie mojej demonstracyjnej aplikacji:
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-spring</artifactId>
<version>${wicket.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.1</version>
</dependency>
Najistotniejszą zmianą jest wykluczenie zależności org.springframework.spring z zależności org.apache.wicket.wicket-spring za pomocą elementu exclusions i samodzielne dopisanie zależności org.springframework.spring.2.5.1 do projektu. Tyle! Dziękuję Waldek za inspirację! Czasami trzeba zwykłego pytania/sugestii/po prostu pogadać z kimś kto się tym również para/interesuje, aby rozwiązać zadanie w parę sekund.

Dla upiększenia przykładu dodałem wyświetlenie wersji Springa w etykiecie na stronie do uwierzytelnienia użytkownika. Zmiana w kodzie klasy-strony pl.jaceklaskowski.wicket.PrzedstawSie:
// wyświetl wykorzystywaną wersję Spring Framework
loginForm.add(new Label("springVersion", SpringVersion.getVersion()));
Zmiana wymagała dodania odpowiadającemu etykiecie elementowi span na stronie HTML - PrzedstawSie.html:
<tr>
<td colspan="3">
Wersja Spring Framework: <b><span wicket:id="springVersion">Wersja Spring Framework</span></b>
</td>
</tr>
Uruchomienie aplikacji z tą zmianą wyświetliło poprawną wersję Springa.


Takiej inspiracji mi trzeba było! Z pozdrowieniami dla Waldka!