Vraptor scaffold em projetos GAE

Existe um arquivo de configuração do vraptor scaffold dentro da pasta META-INF.
Com ele eu consigo setar o package onde é para gerar os artefatos e o template engine.
Agora não achei a configuração de onde vão ficar minhas jsps… Parece que o padrão é src/main/java/, não consigo mudar para war/

Obrigado!

as jsps seguem o mesmo padrão que o VRaptor… no caso do gae war/WEB-INF/jsps

Não saquei…
O vraptor-scaffold.properties está em war/META-INF/
Como mudo a configuração de onde o vraptor scaffold vai buscar esse arquivo?
Segue o erro aí.

/home/c1233611/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/yaml.rb:143:in `initialize': No such file or directory - src/main/webapp/META-INF/vraptor-scaffold.properties (Errno::ENOENT) from /home/c1233611/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/yaml.rb:143:in `open' from /home/c1233611/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/yaml.rb:143:in `load_file' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/vraptor-scaffold-0.0.4/bin/../lib/configuration.rb:12:in `config' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/vraptor-scaffold-0.0.4/bin/../lib/configuration.rb:20:in `package' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/vraptor-scaffold-0.0.4/bin/../lib/configuration.rb:24:in `main_class_path' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/vraptor-scaffold-0.0.4/bin/../lib/../lib/generators/scaffold_generator/controller_generator/controller_generator.rb:8:in `build' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/vraptor-scaffold-0.0.4/bin/../lib/../lib/generators/scaffold_generator/scaffold_generator.rb:20:in `controller_generator' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/thor-0.14.4/lib/thor/task.rb:22:in `send' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/thor-0.14.4/lib/thor/task.rb:22:in `run' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/thor-0.14.4/lib/thor/invocation.rb:118:in `invoke_task' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/thor-0.14.4/lib/thor/invocation.rb:124:in `invoke_all' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/thor-0.14.4/lib/thor/shell.rb:14:in `map' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/thor-0.14.4/lib/thor/core_ext/ordered_hash.rb:73:in `each' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/thor-0.14.4/lib/thor/invocation.rb:124:in `map' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/thor-0.14.4/lib/thor/invocation.rb:124:in `invoke_all' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/vraptor-scaffold-0.0.4/bin/../lib/vraptor-scaffold.rb:24:in `run_scaffold_generator' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/vraptor-scaffold-0.0.4/bin/../lib/vraptor-scaffold.rb:10:in `execute' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/gems/vraptor-scaffold-0.0.4/bin/vraptor:6 from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/bin/vraptor:19:in `load' from /home/c1233611/.rvm/gems/ree-1.8.7-2010.02/bin/vraptor:19

Olá Arthur,

o arquivo vraptor-scaffold.properties fica nesse caminho src/main/webapp/META-INF/vraptor-scaffold.properties

a principio não é possível mudar a localização dele.

Sobre o suporte a gae tem uma issue aberta https://github.com/caelum/vraptor-scaffold/issues#issue/17 para gerar um projeto compativel com o gae algo do tipo

eu não entendi mto bem sua dúvida, era isso que vc queria saber?
como vc fez para gerar o erro abaixo?

A minha estrutura de projeto não tem src/main/webapp, tem war/

crie esse arquivo então:

src/main/webapp/META-INF/vraptor-scaffold.properties

com o conteúdo do que está na pasta war

o gerador do scaffold espera que o projeto tenha essa estrutura src/main/webapp
você criou esse projeto com o scaffold ou é um projeto antigo que vc esta tentando adaptar o scaffold?

justamente rodolfo.
Peguei o blank-project-gae e estou adaptando para o vraptor-scaffold.

[quote=Lucas Cavalcanti]crie esse arquivo então:

src/main/webapp/META-INF/vraptor-scaffold.properties

com o conteúdo do que está na pasta war[/quote]

é, eu posso a passar a usar a estrutura padrão.
Se fosse em java eu tentaria “coçar minha própria coceira”, o lance é que ainda to meio por fora de ruby. ;~

mas é isso aê, valeu galera!

Arhtur se vc quiser adaptar o scaffold ao gae e nao tem sabe mto de ruby faz o seguinte.

gera a estrutura padrão do vraptor scaffold

ai vc faz todas as alteraçoes para funcionar no gae. então vc pode ia la na issue https://github.com/caelum/vraptor-scaffold/issues#issue/17
e colocar o que precisa ser feito para ser compativel. Ai eu implemento a funcionalidade.

o que acha?

se vc pudesse fazer isso ia ser mto util.

att.

Segue o projeto em branco do vraptor-gae… --build-tool dele é a default mesmo, ant+ivy. Já adicionei o framework de persistencia também, objectify.
Link do projeto: https://arthurmc@github.com/arthurmc/vraptor-gae-ant-ivy-objectify-blank-project.git

Pra você saber o que adicionar apartir do projeto que eu criei, segue uma listagem de arquivos gerados apartir do vraptor scaffold default com um indicador no final de cada linha.
Para rodar o projeto no eclipse, fazer os seguintes passos:

  1. ant resolve (no terminal)
  2. copiar os arquivos de libs-vraptor-gae/ para src/main/webapp/WEB-INF/lib/
  3. adicionar ao build path os jars do diretórios e subdiretórios de lib/
  4. adicionar ao build path os jars do diretório libs-vraptor-gae/

[code]

  • = substitui o da criação padrão pelo o que eu fiz.
    & = exclui o arquivo da criação do projeto
    % = mantém o arquivo na criação do projeto.

create .project *
create .classpath *
create .settings * inclusive os arquivos que estão dentro da pasta.
create .settings/org.eclipse.jdt.core.prefs &
create .settings/org.eclipse.wst.common.component &
create .settings/org.eclipse.wst.common.project.facet.core.xml &
create .settings/org.eclipse.wst.jsdt.ui.superType.container &
create .settings/org.eclipse.wst.jsdt.ui.superType.name &
create build.xml *
create build.properties *
create ivy.xml *
create ivy-2.2.0.jar %
create src/main/java %
create src/main/java/app %
create src/main/java/app/controllers %
create src/main/java/app/models/Entity.java *
create src/main/java/app/repositories/Repository.java *
create src/main/resources %
create src/main/resources/META-INF/persistence.xml %
create src/main/resources/log4j.properties %
create src/main/resources/messages.properties &
create src/main/webapp %
create src/main/webapp/WEB-INF/web.xml *
create src/main/webapp/images %
create src/main/webapp/index.jsp %
create src/main/webapp/javascripts/jquery.min.js %
create src/main/webapp/stylesheets/scaffold.css %
create src/main/webapp/META-INF/vraptor-scaffold.properties %
create src/main/webapp/WEB-INF/decorators.xml %
create src/main/webapp/WEB-INF/decorators/main.jsp %
create src/main/webapp/WEB-INF/jsp %
create src/test/java %
create src/test/java/app %
create src/test/java/app/controllers %
create src/test/java/app/models %
create src/test/java/app/repositories %
create src/test/resources %

Passar a criar:
libs-vraptor-gae/*.jars -> Na verdade eu gostaria de instalar esses jars manualmente usando o ivy, mas não sei como fazer isso. Eles não existem em repositórios publicos.
src/main/webapp/WEB-INF/appengine-web.xml[/code]

Acho que é isso cara.
Se faltou alguma coisa ou tiver alguma dúvida, fala aí pra gente conseguir fazer esse lance.
Valeu!

Adicionei uma classe: CriadorDeSessaoDB.
Um @Component request scoped que cria a sessão do objectify.
Claro, se essa não for a melhor forma de fazer isso, aí você faz ou me fala como faz.
Ah, se o nome também não for bom, muda também. hehe

valeu.

Arhtur,

excelente trabalho.

eu adicionei essa thread do guj e o link do seu projeto la na issue no github.

agora vou começar a implementar :slight_smile:

Seu projeto esta fazendo um crud de alguma entidade?

está fazendo o crud sim.

Falando em crud, eu gostaria de testar minhas conversas com o banco. Não estou conseguindo usar o objectify nos testes :/. Se alguém aí souber como, por favor!

Valey!

Na verdade não. Esse projeto da url que eu passei não faz nenhum crud.
Porém se gerar qualquer modelo apartir do vraptor scaffold e utilizar o Repository genérico (que já está adaptado para o objectify), irá funcionar.

Adicionei uma classe no projeto.
TestBase.java é uma classe que configura o banco de dados local sem precisar do servidor web.
Só extender e fazer os testes de integração :slight_smile:

Peguei aqui: http://code.google.com/p/objectify-appengine/source/browse/trunk/src/com/googlecode/objectify/test/TestBase.java?r=606