Compilando o WSO2 Carbon 3.0.0 e corrigindo o WSO2 Data Services Server 2.5.0

Versões novas de produtos sempre são uma alegria, seja pelos recursos novos ou somente pela novidade que sempre alegra-nos, principalmente nós desenvolvedores. Mas juntamente com as novas versões (principalmente nos primeiros releases) vem também problemas, bugs ou incompatibilidade de versões- os problemas mais comuns.

E para não pararmos no tempo, vendo que as novidades do WSO2 Data Services Server 2.5.0 seriam muito bem vindas para nós, resolvemos realizar testes para verificar a possibilidade de atualizarmos nossa versão da 2.2.1 para a 2.5.0, e surgiu aquela alegria quando vimos que não teríamos problemas de incompatibilidade como ocorreu nos testes de migração da 2.0 para WSO2 Data Services Server 2.2.1.

Mas como nem tudo são rosas, um velho bug conhecido nosso na versão 2.0 e discutido no fórum – de não aceitar valores null, tinha sido corrigido na versão 2.2.1; mas resolveu dar as caras na versão 2.5.0. E por necessitarmos das novidades dessa versão, tivemos que correr atrás e corrigir o problema, já corrigido anteriormente.

Como já conhecemos a estrutura, fomos direto ao site do projeto para realizar o download do fonte do WSO2 Data Services Server e fomos atrás do arquivo problemático (SQLQuery.java). Mas para nossa surpresa, o arquivo não estava mais lá, foi centralizado no projeto WSO2 Carbon.

Então com o arquivo de código-fonte do WSO2 Carbon 3.0.0 devidamente baixado, vamos colocar a mão na massa.

Baixando e descompactando o fonte

wget  http://dist.wso2.org/products/carbon/3.0.0/wso2carbon-3.0.0-src.zip
unzip wso2carbon-3.0.0-src.zip

Baixando e aplicando o patch

wget /wp-content/uploads/2010/06/wso2-dataservices-accept-null.txt
cd wso2carbon-3.0.0-src
patch -p1 wso2-dataservices-accept-null.patch

E a mensagem recebida aqui será algo como:

patching file components/data-services/org.wso2.carbon.dataservices.core/3.0.0/src/main/java/org/wso2/carbon/dataservices/dispatch/query/SQLQuery.java

Compilando o componente

Levando em consideração que você tenha as dependências necessárias, vai ser um passo bem demorado. Vai fazer download de alguns pacotes, compilar, testar e gerar uma nova versão do componente, com a correção.

cd components/data-services
mvn install

Corrigindo o Data Services Server

Agora que temos o componente corrigido e devidamente compilado, vamos copiá-lo para a instância do WSO2 Data Services Server (levando em consideração que minha instalação fica em ~/Applications/wso2/wso2dataservices-2.5.0).

cp  org.wso2.carbon.dataservices.core/3.0.0/target/org.wso2.carbon.dataservices.core-3.0.0.jar   ~/Applications/wso2/wso2dataservices-2.5.0/wso2dataservices-2.5.0/repository/components/plugins/org.wso2.carbon.dataservices.core-3.0.0.jar
cp  org.wso2.carbon.dataservices.ui/3.0.0/target/org.wso2.carbon.dataservices.ui-3.0.0.jar    ~/Applications/wso2/wso2dataservices-2.5.0/wso2dataservices-2.5.0/repository/components/plugins/org.wso2.carbon.dataservices.ui-3.0.0.jar

Conclusão

Com o patch criado, testado e aplicado. Abrimos um pedido de correção no JIRA do WSO2, para que eles possam corrigir na próxima release (provavelmente a 2.5.1). Caso você não tenha disponibilidade (de tempo ou paciência), pode baixar os componente do WSO2 Data Services Server corrigido (bastando apenas descompactá-los).

E tenho que falar, viva o código aberto e o software livre! (;

Posts relacionados

Sobre Leonardo Saraiva

Atualmente arquiteto de integração no ICI - Instituto Curitiba de Informática. Trabalhando com SOA utilizando ferramental open source, focando principalmente na suíte WSO2. Idealizador e membro da comunidade WSO2 Brasil.
Esta entrada foi publicada em desenvolvimento e marcada com a tag , , , , , , , , , . Adicione o link permanente aos seus favoritos.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>