demoiselle / behave

Demoiselle Behave
https://www.frameworkdemoiselle.gov.br/dbehave/
29 stars 53 forks source link

Erro ao executar projeto utilizando a versão 1.5.2-SNAPSHOT no Java 1.6 #434

Closed joaquimpedrooliveira closed 7 years ago

joaquimpedrooliveira commented 8 years ago

Ao executar a build de um projeto que utiliza Java 1.6 cujo pom.xml herde de demoiselle-behave-parent, é exibido o erro: java.lang.UnsupportedClassVersionError: br/gov/frameworkdemoiselle/behave/parser/Step : Unsupported major.minor version 51.0, indicando que o Demoiselle Behave foi compilado com o Java 1.7. Todavia, não há qualquer menção desta atualização na documentação.

Esta restrição é mesmo necessária. @juliancesar ?

juliancesar commented 8 years ago

Assim que for possível será feita uma nova publicação. Provavelmente na quarta-feira, dia 16/11.

Julian Cesar

Enviado de um dispositivo móvel.

Em 11 de nov de 2016, às 18:30, Joaquim Oliveira notifications@github.com escreveu:

Ao executar a build de um projeto que utiliza Java 1.6 cujo pom.xml herde de demoiselle-behave-parent, é exibido o erro: java.lang.UnsupportedClassVersionError: br/gov/frameworkdemoiselle/behave/parser/Step : Unsupported major.minor version 51.0, indicando que o Demoiselle Behave foi compilado com o Java 1.7. Todavia, não há qualquer menção desta atualização na documentação.

Esta restrição é mesmo necessária. @juliancesar ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

juliancesar commented 8 years ago

A versão SNAPSHOT da semana passada foi gerada com java 1.8, agora foi recompilada com a versão 1.7 como as anteriores.

Caso o problema persista favor reabrir a issue.

joaquimpedrooliveira commented 8 years ago

@juliancesar , o que eu quis dizer é que o projeto antes era compatível com Java 1.6 e agora não é mais. Ao executar com o Java 1.6, agora obtenho o seguinte erro:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.1:testCompile (default-testCompile) on project webTest: Compilation failure [ERROR] Failure executing javac, but could not parse the error: [ERROR] javac: invalid target release: 1.7 [ERROR] Usage: javac <options> <source files> [ERROR] use -help for a list of possible options [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

Pelo que consegui rastrear, as alterações no maven-compiler-plugin para mudar do 1.6 para o 1.7 foram feitas no commit https://github.com/demoiselle/behave/commit/89dcf137260fbe72805b69d1ed8f4e2ab6c1139f.

O Demoiselle Behave não é mais compatível com Java 1.6?

joaquimpedrooliveira commented 8 years ago

Não tenho permissão para reabrir a issue.

juliancesar commented 8 years ago

@joaquimpedrooliveira, estranho pois pelas configurações do projeto eu nem consigo compilar ele com 1.6! Você já conseguiu utilizar o dbehave com java 1.6?

https://github.com/demoiselle/behave/blob/master/parent/behave/pom.xml#L362

juliancesar commented 8 years ago

Olhando os commits como comentou realmente subimos a versão para a 1.7, isso é um problema para no seu projeto?

joaquimpedrooliveira commented 8 years ago

Sim, pois ele utiliza Java 1.6. Os testes do DBehave estão num projeto separado. Ao executar mvn clean test nele, ocorre a exceção que relatei acima.

O projeto que contém os testes automatizados utiliza como superpom demoiselle-behave-parent, aí acaba herdando as configurações do maven-compiler-plugin.

juliancesar commented 8 years ago

Acredito que esta modificação tenha ocorrido por termos que alterar o local aonde o framework é publicado, antes era o SourceForge, agora é a Sonatype. E para isso foi feita a alteração da estruturação das heranças dos arquivos pom.xml.

É possível instalar/utilizar a versão do java 1.7 na sua máquina!?

joaquimpedrooliveira commented 8 years ago

Hoje, o sistema tem que utilizar Java 1.6. O que posso tentar é ver se executo o projeto de testes especificamente com Java 1.7.

Entretanto, penso que este tipo de alteração deveria ser divulgado (não vi issue para esta atualização) e que devem existir vários sistemas do SERPRO (e fora dele) que ainda utilizam Java 1.6, não tem fôlego para migrar agora e podem também ser impactados.

A atualização para o Java 1.7 deve-se a algum recurso que é utilizado agora internamente pelo DBehave?

juliancesar commented 8 years ago

Entendo a sua situação, seguem alguns comentários.

  1. este tipo de alteração é comum em versões SNAPSHOT, e é justamente neste momento que pegamos estes tipos de problema. Sabemos que em muitos projetos, por estarmos retardando o lançamento da 1.5.2 FINAL, a versão SNAPSHOT é utilizada em "produção" apesar de não ser uma boa pratica recomendada. Contudo este é o único mecanismo que temos para fazer as evoluções e temos ciência dos impactos que as modificações acarretam para todos os utilizadores
  2. o RELEASE NOTES e documentação fazem parte da última etapa do processo de geração de RELEASE, por isso ainda não existem informações consistentes sobre a alteração
  3. entendo a sua questão de fôlego e gostaria que soubesse que a equipe do dbehave está na mesma situação, por isso gostaria da sua compreensão
  4. vamos verificar com calma se a nova estrutura de herança que precisamos utilizar obriga ou não a utilização da versão 1.7, e se possível faremos o downgrade para a 1.6

Os problemas estão ocorrendo neste momento (e provavelmente outras instabilidades ocorrerão) por estarmos dedicando mais tempo as atividades para melhorar o produto, estabilizar os ciclos de desenvolvimento (SNAPSHOT :point_right: BETA :point_right: FINAL) e planejar o ano de 2017 com novas funcionalidades e melhorias importantes para os utilizadores.

Contamos com a sua ajuda para melhorar a ferramenta! :smiley:

juliancesar commented 8 years ago

@joaquimpedrooliveira, favor testar a versão 1.5.2-BETA1 com java 1.6 e me de um retorno para que eu possa fechar a issue.

Aguardo.

joaquimpedrooliveira commented 8 years ago

@juliancesar, na versão 1.5.2-BETA1 deu certo utilizar o Java 1.6.

juliancesar commented 8 years ago

Obrigado. A principio vamos manter a 1.6.

juliancesar commented 7 years ago

@joaquimpedrooliveira, infelizmente por questões de incompatibilidade de versão (minha máquina foi atualizada para a versão 16.04 do Ubuntu) eu não estou conseguindo compilar o DBehave usando a 1.6, contudo alterei o plugin de compilação do Maven para que compilasse na 1.6, mas nem testar o seu funcionamento eu estou conseguindo! A única coisa que consegui garantir é que o arquivo class esta como java 50.0 (java 6) utilizando o comando file:

~/behave/impl/core/target$ file ./classes/br/gov/frameworkdemoiselle/behave/config/BehaveConfig.class ./classes/br/gov/frameworkdemoiselle/behave/config/BehaveConfig.class: compiled Java class data, version 50.0 (Java 1.6)

Seria possível você testar a versão SNAPSHOT gerada agora pouco para verificar se funciona corretamente com o Java 1.6?

Obrigado pela sua colaboração e aguardo.

joaquimpedrooliveira commented 7 years ago

@juliancesar, a versão a ser utilizada é a 1.5.2-SNAPSHOT? Nela o erro continua acontecendo: [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] Failure executing javac, but could not parse the error: javac: invalid target release: 1.7 Usage: javac <options> <source files>

Entretanto, na versão 1.5.2-BETA1 continua dando certo.

juliancesar commented 7 years ago

@joaquimpedrooliveira, correto, a versão que quero que teste é a 1.5.2-SNAPSHOT, contudo o resultado esperado não era esse!

Faça o favor de deletar a sua pasta: /home/CPF/.m2/repository/br/gov/frameworkdemoiselle/component/behave

Pois acredito que você esteja rodando uma versão antiga da SNAPSHOT, para verificar a versão que esta rodando atualmente basta rodar usando maven e verificar o seguinte texto no início do teste:

--------------------------------
Demoiselle Behave Iniciado
Demoiselle Behave 1.5.2-SNAPSHOT em: 01/12/2016 12:51
--------------------------------
joaquimpedrooliveira commented 7 years ago

@juliancesar, após apagar a pasta $HOME/.m2/repository/br/gov/frameworkdemoiselle/component/behave, funcionou:

15:43:40,236 INFO (main) [BehaveContext]: -------------------------------- 15:43:40,237 INFO (main) [BehaveContext]: Demoiselle Behave Iniciado 15:43:40,237 INFO (main) [BehaveContext]: Demoiselle Behave 1.5.2-SNAPSHOT em: 01/12/2016 12:51 15:43:40,237 INFO (main) [BehaveContext]: -------------------------------- 15:43:40,353 INFO (main) [JBehaveParser]: Configurando Parser JBehave... 15:43:40,396 INFO (main) [JBehaveParser]: Iniciando Parser JBehave...

juliancesar commented 7 years ago

@joaquimpedrooliveira, peço a gentileza de faze o último teste com a 1.5.2-BETA3, pois será com base nesta compilação que iremos gerar a versão final.

Obrigado pela sua colaboração.

[BehaveContext]: --------------------------------
[BehaveContext]: Demoiselle Behave Iniciado
[BehaveContext]: Demoiselle Behave 1.5.2-BETA3 em: 06/12/2016 13:48
[BehaveContext]: --------------------------------
joaquimpedrooliveira commented 7 years ago

@juliancesar , funcionou com sucesso na 1.5.2-BETA3:

15:40:15,776 INFO (main) [BehaveContext]: -------------------------------- 15:40:15,777 INFO (main) [BehaveContext]: Demoiselle Behave Iniciado 15:40:15,777 INFO (main) [BehaveContext]: Demoiselle Behave 1.5.2-BETA3 em: 06/12/2016 13:48 15:40:15,777 INFO (main) [BehaveContext]: -------------------------------- 15:40:15,849 INFO (main) [JBehaveParser]: Configurando Parser JBehave... 15:40:15,895 INFO (main) [JBehaveParser]: Iniciando Parser JBehave...

juliancesar commented 7 years ago

Ótimo! Então usaremos a maneira com que compilamos esta versão na 1.5.2 FINAL. Obrigado pela sua colaboração.