VRaptor3 - uso de objetos session/application

Pense na seguinte estória:

Estou num site de ecommerce e desejo comparar dois produtos, ou mais. Então eu vou filtrar alguns de meu interesse.
Ao listar eu seleciono um Macbook e digo q ele é meu primeiro produto para comparação.

O Controller guarda este no escopo de sessao para que possa efetuar outras buscas atrás do outro produto que será comparado.

Efetuo outra busca para encontrar o Sony Vaio e então comparar com o Macbook.

  1. A lista de produtos está no escopo request.
  2. Meu Produto MacBook deveria estar na sessão, mas já marquei como @RequestScoped.
  3. O Sony vaio também é request.

Uma solução seria anotando o atributo do controller, não a própria entidade. O que você acha?

Perfeito.

O que sugeri foi criar um mecanismo no VRaptor para, em determinado momento, guardar coisas que foram passadas como parâmetro na sessão.

Eu me referi justamente ao fato de ter que criar uma classe, anotar com session scoped, e entao conseguir guardar algo no escopo informado. Criar uma classe só pra isso?

Seria interessante ter uma forma de indicar ao VRaptor que (por baixo dos panos ele usa o HttpSession) deseja guardar algo na sessao ou no contexto da aplicacao.

A minha ideia era usar o proprio esquema de @SessionScoped do vraptor, porem por instancia. Ele passaria a gerenciar a q citei com este escopo programaticamente.

Algo como
result.include(sessionScoped()).add(“blabla”,obj);

ou para manter a linha ja existente

result.include(“blabla”,obj).in(sessionScope());

eu entendo que isso mudaria a forma como se pensa o @SessionScoped (que é por tipo e não por instância), o que de qualquer forma ficaria estranho, parecendo variavel global, muito ruim…

de repente poderia fazer com que este objeto seja recuperado atraves de algum cara que é utilizado apenas nos Controllers, tal qual o Result e o Validator. restringindo o acesso pelo conceito, sacou? ainda não vi ninguem usando estes citados nas classes de um service layer, tampouco num dao. Aí seria erro/má pratica de programacao…

beleza… farei isso… pois vou precisar, inclusive no sistema que estou desenvolvendo…