VRaptor 3.5.0 Lançado!

[quote=leandrokjava][quote=garcia-jj][quote=leandrokjava]Seria legal também inserir a data/hora que foi lançado cada versão do changelog, para que possamos ver como está o progresso das atualizações.
http://vraptor.caelum.com.br/pt/docs/changelog-pt/[/quote]

Para saber data/hora de cada commit, autor, etc você pode acompanhar pelo github: https://github.com/caelum/vraptor/commits/master[/quote]

Tudo bem garcia-jj eu sei que posso ver lá, mas insisto também em colocar no changelog, assim garantindo uma maior politica de transparência.[/quote]

Eu realmente não entendo onde a data/hora das atualizações no changelog garante maior política de transparência…

Voltando ao tópico, excelente notícia!!! Utilizo o VRaptor há pouco tempo, mas foi tempo bastante para me identificar com o framework e adotá-lo em uma boa gama de soluções.

fabioebner, o que vc quer dizer com push? ajax push?

opa vou começar a migrar!!!

Isso mesmo Lucas…

Lucas, baixei o Blank Project e fiz um form (utilizando o linkTo) muito simples de login mas não coloquei nenhum input ao subir o projeto eu recebo o seguinte erro:

Caused by: java.lang.IllegalArgumentException: paramNames must have the same length as paramValues. Names: [nome, senha] Values: []

Fiz igual no 3.4 e não recebo o mesmo erro.

precisa de mais algum jar ou precisa de algum pacote no:br.com.caelum.vraptor.packages para utilizar o linkTo no 3.5?

é possível injetar beans CDI dentro das controllers do VRaptor 3.5?

e também é possível interceptar métodos da controller com interceptor da CDI?

valeu!

@fabioebner
Ajax push (comet) não é suportado em mtos servidores. Da última vez que eu verifiquei funcionava no tomcat mais novo, mas não tinha suporte a filters, logo nao funciona no vraptor. Pooling funciona bem na maioria dos casos e roda tranquilo no Vraptor.

@rafaelbtz
O linkTo não funciona bem com métodos com mesmo nome, tava funcionando no 3.4 por sorte. O ideal eh usar nomes diferentes nos métodos do controller

@dbdbdb
Ainda não, vai ficar pra proxima versão

[quote=Lucas Cavalcanti]@fabioebner
Ajax push (comet) não é suportado em mtos servidores. Da última vez que eu verifiquei funcionava no tomcat mais novo, mas não tinha suporte a filters, logo nao funciona no vraptor. Pooling funciona bem na maioria dos casos e roda tranquilo no Vraptor.
[/quote]

Como assim? Esta dizendo que para se ter comet é necessário ter algo no container e não somente no framework?? Ou esta falando de comet usando websockets especificamente? O Liftweb(framework scala) tem uma das melhores(segundo o autor a melhor :shock: ) implementação de comet, e até onde eu sei funciona em qualquer servidor!

[b]Parabêns aos envolvidos.
Somos um amplo exemplo de esforço sinérgico com resultados tangíveis.

Pelo que parece, deverei logo em breve focar meus próximos projetos ao hibernate, deixando o JDBC em alguns casos de lado.

Abraços, pessoal.[/b]

@fredferrao
O Liftweb toma conta de toda a requisição web, por isso que ele tem condições de fazer isso…
O VRaptor só usa a requisição que já foi montada pela API de Servlets, então ele não tem condições de implementar comet.

A razão pra isso é que o servidor tem um número limitado de threads aberta (ex. 50) e pra fazer comet vc precisa deixar a conexão aberta com o cliente. Se o servidor não tiver algo que faz isso de maneira experta vc vai poder suportar apenas 50 clientes (ou o número máximo de threads abertas).

Servlet 3.0 tem o AsyncServlet que faz isso, mas não sei o quão estável ele está nos servidores.

Muito Bom ! ainda estamos aguardando a integração com CDI

Há um tempo atrás participei de um post sobre problemas de receber listas geradas pelo serialize Json do VRpator…
detalhes:http://www.guj.com.br/java/236884-resolvido-receber-json-no-vraptor-3

Por acaso esta questão foi ajustada?

abs

bom, agora existe um deserializer usando GSON, então é só escrever um adapter do GSON que se adequa ao seu modelo.

Legal! :smiley:

Atualizei para a versao 3.5 do vraptor aqui e tudo ocorreu sem maiores problemas… exceto por esse erro no linkTo da view jsp:

Mensagem de erro: “java.lang.IllegalArgumentException: paramNames must have the same length as paramValues. Names: [usuario] Values: []”

Descobri que isso ocorre nessa linha da minha view do jsp:

<form action="${linkTo[UsersController].login}">

E o respectivo método login no UsersController é:

@Post @Path("/login")
public void login(Usuario usuario){
}

Eu entendi que, como login recebe parametro, o linkTo espera que eu passe um parametro tambem. Mas eu nao passava parametro no vraptor 3.4.1 e funcionava. Agora, nao funciona.

O que fazer?

Existe mais de um método com o nome login no seu controller?

Com o nome login não, mas com o mesmo @path(/login) sim.

Um pouco mais da exception:

javax.servlet.jsp.JspException: javax.el.MethodNotFoundException: Unable to find method [login] with [0] parameters

Lucas, quando eu coloco qq parametro, assim por exemplo:

O erro não ocorre. Mais a url também não é montada.

Assim como o ThiagoInGuj eu também estou tendo o mesmo problema com o linkTo, recebo o mesmo erro. Não tenho 2 métodos com o mesmo nome e nem 2 urls e o método também não tem o mesmo nome do controller.

O problema relatado pelo ThiagoInGuj é o mesmo que relatei nesse tópico: http://www.guj.com.br/java/297961-vraptor---problemas-com-linkto-350

Parece que a alteração feita no LinkToHandler, para o cenário de métodos sobrecarregados, introduziu um pequeno bug…

Thiago, meu xará, acho acho que a única solução possível no seu caso aí por enquanto é criar outro método no controller

public class SeuController {
   @Path 
   public void metodo(Usuario usuario){
   }
   @Path
   public void metodo(){
   }
}

Passar null seria uma boa, mas do jeito que o código do VRaptor está não vai funcionar (por isso a url nem é gerada, a execução nao chega nesse ponto)