Marcos Sousa’s Blog

Blog sobre desenvolvimento de software
  • rss
  • Home
  • Sobre

Generator do Seam 2.1 não é compativel com 2.0.x

Marcos Sousa | March 28, 2009

Fazendo alguns testes com o Seam acabei descobrindo uma falha de compatibilidade do Seam Generator da versão 2.1 com as versões anteriores. O problema reside nos filtros que são criados nas páginas de listagens.

Nas versões anteriores, o componente para as páginas de listagens sobrescreviam os métodos:
- getEjbql: Consulta EJB QL usada para a listagem.
- getMaxResults: Define a quantidade de registros a serem retornados pela listagem.
- getRestrictions: Retorna lista de restrições a serem adicionadas a consulta.

Porém na versão 2.1 estes métodos deixaram de ser usados na geração do código. O problema é que o método getRestrictions teve o retorno aterado. Nas versões anteriores ele retornava uma lista de Strings, já na versão 2.1 o tipo de retorno foi alterado para uma lista de ValueExpression.

Com isto um código gerado na versão na versão 2.0.3, por exemplo, gera ClassCastException ao tentar converter String em ValueExpression. Solução? Atualizar o código, veja o antes e o depois:

@Name("userList")
public class UserList extends EntityQuery {

private static final String[] RESTRICTIONS = {
"lower(user.login) like concat(lower(#{userList.user.login}),'%')",
"lower(user.name) like concat(lower(#{userList.user.name}),'%')"};

private final User user = new User();
@Override
public String getEjbql() {
return "select user from User user";
}

@Override
public Integer getMaxResults() {
return 25;
}

public User getUser() {
return user;
}

@Override
public List<string> getRestrictions() {
return Arrays.asList(RESTRICTIONS);
}

}

A versão 2.1 o código gerado é algo semelhante a:

@Name("userList")
public class UserList extends EntityQuery<user> {

private static final String EJBQL = "select user from User user";

private static final String[] RESTRICTIONS = {
"lower(user.login) like concat(lower(#{userList.user.login}),'%')",
"lower(user.name) like concat(lower(#{userList.user.name}),'%')"};

private final User user = new User();

public UserList() {
setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
setMaxResults(25);
setEjbql(EJBQL);
}

public User getUser() {
return user;
}
}

Até que seja corrigido o problema fica a dica.

Comments
8 Comments »
Categories
Java, Java EE, Java Server Faces, Jboss Seam
Tags
Jboss Seam, JSF, Seam Framework, Seam-gen
Comments rss Comments rss
Trackback Trackback

Vídeo Aula Jboss Seam: Seam Gen parte 3

Marcos Sousa | April 30, 2008

Foi publicada no portal Java Magazine a 10ª vídeo aula da série sobre Seam Framework. Nesta vídeo aula eu mostrei como criar conversores de dados JSF usando anotações do Seam Framework. Esta maneira apresentada não requer a configuração dos conversores no arquivo de configuração do JSF, o faces-config.xml.

Na vídeo aula foram criados dois conversores de dados JSF para as entidades de Produto e Categoria. Estes conversores são usados nos combos de produto (página MovimentEdit.xhtml) e categorias (Página ProductEdit.xhtml). Estes combos recebem listas de SelectItem, métodos criados na parte 9, contendo como valor a instância de produto e categoria. Para finalizar foi criada uma ação para calcular o valor total do movimento.

Esta foi a última vídeo aula da série que introduz os recursos do Seam Framework. Ao logo da série foi abordado a configuração da aplicação, criação de chamadas de ações usando parâmetros, a criação de page actions permitindo fazer o bind de parâmetros GET com propriedades de Managed Beans, criação de URL User Friendly, integração com Spring e por fim a exploração do Seam-Gen.

Espero que tenham gostado. Caso tenha alguma crítica e sugestão serão sempre bem vindas.

Vídeo Aula

Comments
No Comments »
Categories
Java, Java EE, Java Server Faces, Jboss Seam, Vídeo Aulas
Tags
@Converter, Converters, Java, Java Magazine, Java Server Faces, Java Vídeo Magazine, Jboss, Jboss Developer Studio, JPA, JSF, RHDS, Seam Framework, Seam-gen, Vídeo Aula
Comments rss Comments rss
Trackback Trackback

Vídeo Aula Jboss Seam: Seam Gen parte 2

Marcos Sousa | April 23, 2008

Foi publicada no portal Java Magazine a 9ª vídeo aula da série sobre JBoss Seam. Nesta vídeo aula eu mostrei como pode ser adicionados novos serviços dentro da aplicação gerada pelo Seam-Gen usando o Jboss Developer Studio.

Na vídeo aula foram criados métodos para cálculo de saldo de estoque e métodos para geração dos itens dos combos para Categorias, Produtos e Tipos de Movimentos. Na próxima parte será mostrada a criação de Conversores JSF usando as anotações do Seam. Vale a pena conferir!

Vídeo Aula

Comments
No Comments »
Categories
Java, Java EE, Java Server Faces, Jboss Seam, RAD, Vídeo Aulas
Tags
Java, Java Magazine, Java Server Faces, Java Vídeo Magazine, Jboss, Jboss Developer Studio, JPA, JSF, RHDS, Seam Framework, Seam-gen, Vídeo Aula
Comments rss Comments rss
Trackback Trackback

« Previous Entries

Núvens de tags

Agile Agile2009 Agile Conference Facelets GET Hibernate IDE incompatiblidades Itext Java Java EE Java Magazine Java Server Faces JavaServer Faces Java Vídeo Magazine Jboss jboss-seam-itext Jboss Developer Studio Jboss Seam JDBC type: 7 JPA JSF JSFUnit linux Microsoft No Dialect mapping for JDBC type: 7 Page Actions PostGreSQL RHDS rich:fileUpload Rich Faces RichFaces RichFaces 3.2 Scrum Seam-gen Seam Framework Seam PDF Spring Spring Framework TDD URL Rewrite URL User Friendly Vídeo Aula Variable Resolver XP

Meus últimos tweets

  • Lots of issues solved in python petshop project. I really love to have access to the source code, I feel more comfortable to solve them #win 1 hour ago
  • Você trabalha muito ? http://bit.ly/acRVHJ (via @handersonbf) #rimuito #nerd #geek 5 hours ago
  • RT: @jeveaux: RT @makoto_vix Olha o que esta no site do serra ! http://bit.ly/9b1lY4. #boa 13 hours ago
  • Using Google Calendar for planning my activities for this week. As usual just 5hs/day to sleep. Now, let's try to follow it! 1 day ago
  • Lost in Pandora, an extra season of LOST: http://meme.yahoo.com/marcossousa/p/8Rzv4E2 1 day ago
  • The correct spell of CCAA: http://meme.yahoo.com/marcossousa/p/wKmeANO #dumb 1 day ago
  • Inscrição feita para o Open Hack Brazil 2010. Nos encontramos lá. http://tinyurl.com/yjhkw4c #brhackday 3 days ago
  • RT: @mynameisflaw: Gilead + GWT don't work with Seam Remoting! :( 3 days ago
  • @guinascimento @igocoelho Foi muito bom mesmo. Além da festa que fizemos aquele Bloomin Onion estava muito gosto. 3 days ago
  • RT: @gchapiewski: RT @smashingmag: Removing Features: How To Avoid Feature Creep - http://bit.ly/9HT3Da 3 days ago

Anúcios

Categorias

  • .net
  • Agile
  • Agile Conference 2009
  • Artigos
  • Atualidades
  • c++
  • cinema
  • Django
  • DRY
  • Eventos
  • Flex
  • Formula 1
  • Hibernate
  • IDE
  • Inutilidades
  • Java
  • Java EE
  • Java Server Faces
  • Jboss Seam
  • linux
  • Mac OS
  • Microsoft
  • Open-source
  • Palestras
  • Python
  • RAD
  • RIA
  • RichFaces
  • Scrum
  • Software Livre
  • Spring
  • Spring Annotations
  • TDD
  • Testes
  • Uncategorized
  • Vídeo Aulas

Links recomendados

  • AJ Soluções
  • Ary Júnior
  • Erko Bridee
  • Fragmental
  • Fragmental TW
  • Guilherme Chapiewski
  • Handerson Frota
  • Jeveaux
  • Juliano Carniel
  • Onipresente
  • Passes de Letra
  • PortalJava.com
  • Rafael Carneiro
  • Rafael Pontes

DevMedia Post’s

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox