Ir para o conteúdo

 Voltar a Jaguar - Des...
Tela cheia

Reaproveitamento de classes de um projeto JCompany 3.3 para Jaguar 6.1

1 de Junho de 2012, 14:13 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 67 vezes
Hoje temos um projeto rodando com JCompany 3.3 e aos poucos iremos migrar para Jaguar 6.1, mudando de Struts para Faces.
Neste primeiro momento, iremos criar um novo módulo do nosso sistema no Jaguar. Para isso gostaríamos de aproveitar as "VOs" do projeto do JCompany 3.3.  
Pensamos em criar um 3º projeto para colocar essas classes que serão comum para 2 projetos.
Dentro do POM deste 3º projeto, devo ter algumas dependências de ambos projetos (JCompany 3.3 e Jaguar 6.1), para que eu possa trabalhar com apenas uma classe mapeada tratar ela como uma Entity no jaguar e no JCompany como uma PlcBaseVO.
Ou seja na verdade eu trabalharia somente com as minhas VOs que estendem de PlcBaseVO e adaptaria elas para poder gravar e pesquisar elas por dentro do Jaguar.
Na teoria ta tudo muito lindo pra mim, mas já de cara não consigo iniciar meu tomcat.
Inicialmente criei um projeto novo no jaguar, em seguida criei um novo módulo de negócio(Onde ficará a ligação de um módulo entre os 2 sistemas).
Alterei o pom deste novo módulo com as dependências do JCompany 3.3
<dependency>
<groupId>powerlogic.jcompany</groupId>
<artifactId>jcompany_comuns</artifactId>
<version>3.3</version>
</dependency>
<dependency>
<groupId>powerlogic.jcompany</groupId>
<artifactId>jcompany_modelo</artifactId>
<version>3.3</version>
</dependency>

so que ao iniciar o tomcat, gera um erro:
java.lang.NoSuchMethodError: org.apache.commons.lang.ArrayUtils.isNotEmpty([Ljava/lang/Object;)Z

Ou seja pelo que estou vendo ele está substituindo as bibliotecas atuais como nesse caso do apache lang por versões mais antiga do JCompany. 

Não sei se esta é a melhor forma para que eu possa trablhar em conjunto com os dois frameworks, alguém teria uma solução melhor? ou uma solução para este problema?
  
 
Atenciosamente

Rodrigo Busato

Autor: Rodrigo Busato Sartor


77 comentários

  • F24a4b3d0e8ba72374bf01a0393fe3c3?only path=false&size=50&d=404Marco Quiçula(usuário não autenticado)
    1 de Junho de 2012, 14:50

     

    Acho que essa manobra toda não vale a pena.

    O ideal é você recriar as entidades no projeto Jaguar.

    Não consegui perceber o motivo de tentar reaproveitar os VOs. Acho que você vai ter mais trabalho tentando manter a compatibilidade do que executar uma alteração nos dois projetos, se necessário for.

    Att.

    • 005dc90934de68d5f40c8a696d8f95ff?only path=false&size=50&d=404Rodrigo Busato Sartor(usuário não autenticado)
      1 de Junho de 2012, 15:07

       

      O problema é que não temos condições de parar o projeto atual e migrar tudo para o jaguar (e estamos sentindo a necessidade de migrar para uma tecnologia mais atual), hoje temos diversos clientes com solicitações de customizações tanto em rotinas atuais, quanto novas, e como nosso sistema é grande e complexo, pra se ter uma ideia ele está em desenvolvido ou seja sendo ampliado e gerado manutenção a pelo menos uns 5 anos. Por isso da necessidade de mantermos uma versão tão antiga do JCompany, com isso estamos tendo que bolar esta ligação entre os 2 projetos, para os novos módulos do sistema virem no jaguar, e aos poucos migramos as rotinas existentes.

       Att

       

       

      • 005dc90934de68d5f40c8a696d8f95ff?only path=false&size=50&d=404Rodrigo Busato Sartor(usuário não autenticado)
        1 de Junho de 2012, 15:18

         

        Um problema de mantermos 2 projetos, é que exitem 'n' objetos mapeados que vão ser utilizadas pelas 2 aplicações, o que me obrigaria a sempre ter duas versões dos objetos em duplicidade uma como VO e outra como Entity, o que da uma brecha muito grande para ficar alguma coluna de fora e gerar erros posteriores. 

        • C5abf0c5ff718707aa3f684bf5dc9908?only path=false&size=50&d=404Bruno Carneiro(usuário não autenticado)
          4 de Junho de 2012, 10:25

           

          Olá Rodrigo,

          acho que é possível reusar o jar de entidades da sua aplicação jCompany 3.3.
          O que você pode fazer é o seguinte:

              Continuar utilizando o jar das entidades para sua aplicação 3.3 (Claro que não precisa realizar nenhuma alteração).
              Utilizar o mesma jar na sua aplicação Jaguar.
              Como todos falaram, as anotações realmente são diferentes para as duas versões diferentes de Hibernate, mas existe um recurso para lidar com isso, que é Sobrescreve anotações via XML. Então, para aplicação Jaguar você precisaria mapear essas entidades em no arquivo orm.xml.

          docs​.jbo​ss.o​rg/h​iber​nate​/orm​/4.1​/man​ual/​en-U​S/ht​ml_s​ingl​e/#x​ml
          docs​.jbo​ss.o​rg/h​iber​nate​/ann​otat​ions​/3.5​/ref​eren​ce/e​n/ht​ml/x​ml-o​verr​idin​g.ht​ml (Sei que é a versão 3.5, mas acredito que na 4.X também funcione.)
          stac​kove​rflo​w.co​m/qu​esti​ons/​8750​777/​orm-​xml-​does​-not​-ove​rrid​e-an​nota​tion​s

              Para aplicação Jaguar, você também precisaria gerenciar as dependências, para evitar conflitos em versões diferentes de um jar. Nesse ponto, o plugin M2Eclipse ajuda bastante. Para o jar das entidades, você precisará excluir as dependências do jCompany 3.3 e as suas dependências consequentes.
              Ainda assim, pode ser que aconteça algum efeito colateral no Jaguar, pois até onde eu sei, ninguém nunca fez esse tipo integração com o Jaguar.

          Resumindo, messa todas as suas necessidade para fazer isso. Como os outros integrantes do fórum responderam, realmente o caminho mais fácil é criar as entidades novamente e mapeá-las. Mas, se é realmente necessário realizar esses passos, está aí uma possível solução.

          Não se esqueça de compartilhar conosco a abordagem final!

          Abraços

          • 005dc90934de68d5f40c8a696d8f95ff?only path=false&size=50&d=404Rodrigo Busato Sartor(usuário não autenticado)
            4 de Junho de 2012, 19:06

             

            Olá Bruno,

            Desconhecia essa opção de subscrever as anotações, vou dar uma boa estudada nisso, mais já eh um bom caminho. Os conflitos dos jar , já estou tendo alguns, mais aos poucos vou mapeando e resolvendo.

             Infelizmente vou ter que abandonar este projeto por um tempo, por não haver tempo hábil para entrega do módulo que estou trabalhando nessa forma. Porém volto a trabalhar só com Struts, mais assim que possível, volto e quando obtiver um resultado repasso aqui.

            Muito obrigado pela ajuda. 

             

            • 9629a03e0a11fa94356f3500efa86820?only path=false&size=50&d=404Márcio Gonçalves(usuário não autenticado)
              22 de Agosto de 2012, 11:52

               

              Rodrigo,

               Eu também penso em usar o Jaguar para desenvolver um ERP e estimo que demore pelo menos 2 anos. Tenho receio que aconteça o mesmo que aconteceu com você. Então fico pensando em como evitar isso.

              O que você me aconselha a fazer/evitar, baseado em sua experiência?

              Grato. 

  • 40c14794ea9b2a989cf98efc0a4f81f6?only path=false&size=50&d=404Rogerio Baldini(usuário não autenticado)
    1 de Junho de 2012, 14:59

     

    Rodrigo,

     Isso não vai funcionar.

    O Hibernate do jCompany 3.3 é muito antigo em comparação com o Hibernate 4 (JPA2) do Jaguar.

    Existem diferenças na forma de mapeamento, e você provavelmente não conseguirá mantê-los em comum.

    Sinceramente acho que não vale a pena a tentativa.

    Mantenha projetos separados para cada um.

     Baldini. 

Lançamento do Jaguar 6.1 eminente...

6 de Maio de 2012, 8:13, por Desconhecido

O Jaguar 6.1 traz um grande leque de inovações dentre eles os exclusivos Jaguar Extensions, que possibilitam que plugins de arquitetura sejam criados com elegância através de técnicas de OCP (Open/Closed Principle). Este mecanimo possibilita que as implementações hiper-produtivas para Padrões de Caso de Uso de alto nível do Jaguar sejam expandidas através de componentes que encapsulam novos padrões, tanto para a parte OO (framework) quanto de geração de código complementar!



Evento Jaguar em Brasília, no dia19/10

3 de Outubro de 2011, 9:34, por Desconhecido

Quem estiver em Brasília no dia 19/10 não deixe de investir uma manhã neste evento, que é bem prático (mão na massa para desenvolver uma aplicação "do zero" com Java EE 6 / Jaguar) e traz insights importantes sobre tendências para a próxima década (BPMN 2.0, CMIS, Web Mobile com HTML5, etc.), implementados via Jaguar Extensions.



Ibrowse lança ferramenta de migração dos aplicativos desenvolvidos em Oracle Forms/Reports para o ambiente Jaguar

19 de Agosto de 2011, 16:37, por Desconhecido

A ferramenta lançada é o Telescope for Jaguar na modalidade SaaS, que visa a automação no processo de migração dos aplicativos desenvolvidos em Oracle Forms/Reports para o ambiente Java EE 6 na arquitetura Jaguar, que é uma das soluções do Portal do Software Publico.



Treinamento Jaguar em Brasília

27 de Julho de 2011, 14:47, por Desconhecido

Autor: Anna Carolina Duarte



A Ibrowse em parceria com a Universidade Luterana do Brasil (ULBRA) realiza o 1º curso de extensão em Jaguar

11 de Julho de 2011, 15:35, por Desconhecido

Autor: Justino Paulo