[RESOLVIDO] github + vraptor - ajuda para fazer um mini tutorial

10 respostas
A

Vamos aos pontos:

  1. Não sou profissional de informatica. Trabalho com Contabilidade e Administração.

  2. Crio pequenos aplicativos para uso próprio.

  3. Programava em VB e a 1 ano tenho estudado java

  4. IMPORTANTE: Gostaria de contribuir com o pouco que sei no desenvolvimento do Vraptor. Já que o estou usando de 0800, nada mais justo que contribuir com algo.

  5. Para começar fiz esta singela implementação e por sugestão do Lucas gostaria de envia-la para o github. http://www.guj.com.br/java/228861-problema-com-hibernate-validator-e-vraptor-320

  6. Começo da saga, que com a ajuda de vocês poderá ficar como um mini tutorial para quem mais quiser ajudar no desenvolvimento:

Passo 1: instalar o git na maquina
No meu caso, como uso Arch Linux:

# pacman -S git

passo 2: criar conta no github:

passo 3: criar a chave ssh e adicioná-la ao github
link: http://help.github.com/linux-key-setup/

passo 4: configurar o git no pc:
link: http://help.github.com/git-email-settings/

passo 5: Criei um fork do vraptor no github para a minha conta
ir na pagina do vraptor e clicar em fork
link: https://github.com/caelum/vraptor

passo 6: criar clone local (no pc de trabalho)

$ mkdir /local/dos/arquivos/desejado/git-home
$ cd /local/dos/arquivos/desejado/git-home
$ git clone --progress [email removido]:seuusuariogit/vraptor.git

passo 7: muita paciência se sua internete não for rápida…

a partir daqui não sei se fiz corretamente e peço a vossa augusta ajuda!!

10 Respostas

A

O que fiz:

  • criei um projeto no eclipse JAVA PROJECT com a mesma estrutura da pasta vraptor-core do git
  • copiei os arquivos do git para o projeto do eclipse
  • adicionei as libs do diretorio “mandatory”
deu erro nos imports:

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

não consegui identificar no google em qual pacote estão estas classes
Creio que o problema seja o tipo de projeto que criei… mas como já disse, sou apenas um aprendiz

Lucas_Cavalcanti

admwagner, vc não precisa criar um novo projeto. Faça o seguinte.

na pasta vraptor-core, renomeie o classpath-example e project-example para .classpath e .project, e no eclipse é só importar o projeto, já está tudo pronto.

qqer coisa é só falar

A

já havia tentado isso e adivinha… tinha esquecido que os arquivos deveriam ser ocultos (faltava o “.”) rsrsrsrs

coisa tipida de principiante…

2o. erro: o eclipse acusa:
Project ‘vraptor-core’ is missing required library: ‘lib/containers/guice/scannotation-1.0.2.jar’ vraptor-core Build path Build Path Problem
Project ‘vraptor-core’ is missing required library: ‘lib/containers/picocontainer/scannotation-1.0.2.jar’ vraptor-core Build path Build Path Problem
The project cannot be built until build path errors are resolved vraptor-core Unknown Java Problem

ou seja falta o jar mencionado… mas ele não está na pasta…
sei que posso encontrá-lo e simplesmente adicioná-lo na pasta correta para não dar o erro: a questão é:

o arquivo é necessário ou devido as mudanças desenvolvidas já não será mais usado…

por ora, copiei o arquivo faltante para a pasta “lib/containers/guice/” e exclui a outra dependencia pois trata-se do mesmo arquivo.

A

seguindo a saga, criei a classe que desejo compartilhar: MockValidatorHibernate.java

package br.com.caelum.vraptor.util.test;
 import java.util.Set;  
   
import javax.validation.ConstraintViolation;  
import javax.validation.Validator;  
import org.apache.log4j.Logger;  
import br.com.caelum.vraptor.validator.ValidationMessage;  
import br.com.caelum.vraptor.validator.ValidationException;  
import javax.validation.Validation;


/**
 * Mocked Validator for testing your controllers.
 *
 * You can use the idiom:
 * MockValidator validator = new MockValidator();
 * MyController controller = new MyController(..., validator);
 *
 * try {
 * 		controller.method();
 * 		Assert.fail();
 * } catch (ValidationError e) {
 * 		List<Message> errors = e.getErrors();
 * 		// asserts
 * }
 *
 * or
 *
 * @Test(expected=ValidationError.class)
 *
 * @author Lucas Cavalcanti, Wagner Ferreira e leandros 
 * link: http://www.guj.com.br/java/228861-problema-com-hibernate-validator-e-vraptor-320
 */

public class MockValidatorHibernate extends MockValidator{

	   private Validator validator;
	   private static final Logger log = Logger.getLogger(MockValidatorHibernate.class);

	   public MockValidatorHibernate() {
	      validator = Validation.buildDefaultValidatorFactory().getValidator();
	   }


	   @Override
	     public void validate(Object bean) {

	      log.debug("------------------------------------------ inicio validate ");
	      final Set<ConstraintViolation><Object>> violations = validator.validate(bean);
	      
	      for (ConstraintViolation<Object> constraintViolation : violations) {
	         
	         add(new ValidationMessage(constraintViolation.getMessage(), constraintViolation.getMessageTemplate().replaceAll("[{}]", "")));
	         
	      }

	      if (!getErrors().isEmpty()) {
	         log.debug("---------" + getErrors().size() + " mensagen(s) de erros foi(ram) identificada(s) - ATENÇÃO!");
	         throw new ValidationException(getErrors());
	      }

	   }

}

salvei e sai do eclipse

no diretorio do git e

git add '/loca/do/arquivo/MockValidatorHibernate.java'

não sei se precisava do caminho completo, mas… por via das duvidas o clicar e arrastar ajudou…

fazer commit:

git commit -a -m "adicionado classe MockValidatorHibernate.java em br.com.caelum.vraptor.util.test"

verificando se no espaço de tempo que fiz as alterações houve outras alterações no repositorio principal (como estou fazendo no meu repo… até imagino que isso não era necessário)

enviando as modificações para o github:

não funcionou… indo no github o arquivo não estava lá…
então tentei:

git remote add origin [email removido]:seuusuariogit/vraptor.git
também não deu… disse que o “remote origin already exists.”

resoulvi apelar para a ajuda oficial do github e tentar decifra-lo (está em inglês), mas com a ajuda do google tradutor…
link: http://help.github.com/forking/

vi que o comando estava certo (ao menos eu imaginava):

mas ele remetia para outra parte da ajuda
link: http://help.github.com/pull-requests/

não consegui identificar o problema… ESTOU NOVAMENTE PARADO e surge a dúvida…

após alterar ou adicionar os arquivos, como faço para mandar para o github?

A

continuando as pesquisas encontrei o seguinte tutorial da Loiane

consegui enviar para o meu fork do vraptor no git

no meu fork cliquei em “Pull Request”

inclui uma mensagem e tudo ok… contribuição enviada…

Mas ainda gostaria que alguem e informasse os comandos para usar no console…

abs…

Lucas_Cavalcanti

workflow do git (em pt):
http://vidageek.net/2009/07/06/git-workflow/

trabalhando com o fork vc pode fazer:

git remote add fork

daí para fazer qualquer alteração no fork, faça:

git checkout master #volta pro master
git pull origin master #pega as últimas alterações no principal

git checkout -b o_q_vc_esta_fazendo #cria uma branch para não sujar o master

<faz as alterações e os commits>

git push fork o_q_vc_esta_fazendo

Abraços e obrigado pelo pull request =)

G

Uma dica que eu aprendi com o Lucas é que quando você está usando o fork de um projeto trabalhar sempre em um branch. O ideal é sempre deixar o master com um reflexo do que é o origin/master (repositório original do projeto).

Usso é bom porque qualquer problema basta você matar o branch e começar de novo. Além do mais, mesmo que seu pull request não seja aceito, vocẽ pode seguir trabalhando em outras coisas, sempre fazendo branchs a partir do master.

Sua implementação ficou muito boa. Eu só deixaria os logs mais simples, sem hifens, garrafais, etc.

Abraços

A

Grato pelas dicas.

Quanto aos logs, tem razão. Quando estou fazendo testes uso estes hifens para chamar minha atenção em meio a varios outros logs…
Mas realmente ao enviar a contribuição deveria tê-los retirado.

Mas cara, fiquei impressionado com os ajustes do Lucas no código.
links:


https://github.com/caelum/vraptor/blob/master/vraptor-core/src/main/java/br/com/caelum/vraptor/util/test/HibernateMockValidator.java

Eu pensava que sabia programar (em VB) estou percebendo que sabia apenas digitar… vou aprender com vocês aqui…

fraternal abraço.

A

Encontrei este passo a passo para uso do github.

http://labs.moip.com.br/2010/10/18/guia-pratico-contribuindo-com-projetos-do-moip-no-github-chaves-rsa-forks-e-clones/
http://labs.moip.com.br/2010/10/19/guia-pratico-contribuindo-com-projetos-do-moip-no-github-branches-commits-e-pushes/
http://labs.moip.com.br/2010/10/20/guia-pratico-contribuindo-com-projetos-do-moip-no-github-remotes-fetches-pull-requests-e-issues/

G

Recentemente o pessoal do Hibernate migrou de SVN para GIT usando o Github. Tem um artigo bem interessante contando como foi a migração e uma série de dicas para quem usa git.

http://relation.to/Bloggers/HibernateMovesToGitGitTipsAndTricks

Criado 28 de janeiro de 2011
Ultima resposta 4 de fev. de 2011
Respostas 10
Participantes 3