O projeto Wicket da Apache lançou a versão 1.4 do seu componente open-source para aplicações Java web. Essa é a primeira versão que requer Java 5 (e acima) que permite o uso de recursos do Java 5 (como generics) o que agrega uma tipagem forte às APIs.
Embora tenham mudanças importantes na versão 1.4 elas são compatíveis com a versão 1.3, o que permite uma migração sem dificuldades da sua aplicação para a última versão:
De todas as alterações dessa versão, as mais importantes são:
- Interfaces IModel e implementações genéricas agregam para a tipagem forte nas aplicações Wicket
- Component#getModel() e Component#setModel() foram renomeados para getDefaultModel() e setDefaultModel() para um melhor suporte aos modelos genéricos
- Os módulos para o Spring foram incorporados (o wicket-spring-annot se tornou obsoleto e agora será utilizado o wicket-spring)
- Muitas API's foram alteradas para trabalhar melhor com os idiomas do Java5
- Os jars do Wicket agora são empacotados com metadata, que o tornam compatíveis com pacotes OSGI
Você pode fazer o download dessa release ou obtê-la pelo Maven:
<dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket</artifactId> <version>1.4.0</version> </dependency>
Arun Gupta fala sobre sua experiência na atualização para a versão 1.4:
Você pode encontrar o seguinte erro:
2009-08-05 05:58:49.387::INFO: No Transaction manager found - if your webapp requires one, please configure one. ERROR - DiskPageStore - Couldn't load DiskPageStore index from file /Users/arungupta/workspaces/runner~subversion/wicket/runner/target/work/wicket.runner-filestore/DiskPageStoreIndex. java.lang.ClassNotFoundException: org.apache.wicket.util.concurrent.ConcurrentHashMap at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:319)Ao menos tentei :)
Felizmente a correção é simples e intuitiva. Ao invés de executar "mvn jetty:run", execute:
mvn clean jetty:run
Basicamente, o "clean" irá limpar as referências para as versões anteriores dos jars do Wicket do seu projeto e voilà!
Os "Mystic Coders" postaram um guia de atualização para 1.4 no seu tutorial "5 Dias de Wicket!".
Você pode encontrar mais informações sobre o Wicket e outros Frameworks aqui no InfoQ!