11 de março de 2010

Café com Java


Dia 17/04 haverá um café com Java, para o pessoal fazer um networking, tem muita gente que não vejohá muito tempo.
Vai ser em São Paulo, respondam a enquete ou comentem esse tópico para realizarmos essa reunião.
Quem pode ir? TODOS é uma confraternização, um networking e não um evento, nada formal. 
Posso chamar amigos da Faculdade e outros desenvolvedores que não programam em Java? Claro que SIM =)

Dia: 17/04/2010
Hora:  09:00 - até a hora que todo mundo for embora rs
Local: Livraria Cultura - Av. Paulista - Votado pela maioria. A Livraria Cultura fica ao lado da estação de metrô da Consolação MAPA
Twitter Tag:  #CafeComJava
GUJ: Café Com Java  
O Paulo Silveira da Caelum sugeriu para quem não for embora cedo ainda rolar um almoço =)




Obs: imagem retirada do site: Zazzle

18 de fevereiro de 2010

Scrum Solo?

Bom Dia, faz muito tempo que não posto um tutorial, talvez pela falta de tempo, talvez por não ter nada de novo e interessante para postar, pois o padrão de framework brasileiro para Java ainda é: Struts 1.x, JDBC puro, ou seja sem nenhuma ferramenta ORM (JPA, Hibernate, TopLink, etc) e o não uso de metodologias de desenvolvimento de software, ou seja, tudo é urgente, falta documentação, nada de que todos não conheçam já ;)


Bom, há muito tempo defendo metodologias ágeis, dentre elas o SCRUM, onde aqui no próprio blog sempre posto alguma palestra ou tutorial.

E como era de se esperar decidi adotar SCRUM aqui na empresa, mas como a equipe é individual ou seja, cada um pega uma gama de coisa e sai fazendo pelo menos no momento não daria para usar esta metodologia com todos, uma porque não há interesse por parte deles, outra porque é a velha história, isso não funciona e etc...

Há muito tempo atrás li o artigo do meu grande amigo Boaglio, no qual ele fala de SCRUM Solo, ou seja ele se organizou nos seus objetivos, tarefas e entregas.

Bom para quem lembra do SCRUM é necessário:

-Traçar um objetivo

-Traçar o backlog

-Criar o time-line ou Sprint (2 - 4 semanas)

-Quadro Kanban

-Reuniões com o PO

-Reuniões com o time

-etc...

Bom como não estou usando 100% do Scrum, logo ele é um Scrum but...

Isto porque meu objetivo é:

-Entregar módulos que o cliente pediu;

-Monto minhas User Stories;

-Coloco na área pendente do meu Kanban as prioridades que consigo entregar no tempo;

-Defini Sprints de 2 semanas;

-Antes de montar temos uma reunião forte com o PO e podemos acessá-lo em qualquer momento;

-No final do Sprint reuno e mostro o produto final.

-Não temos reuniões diárias, de Review e mais alguns pontos da metodologia, por isso Scrum but, lembrando que estou aplicando solo, ou seja, eu e Deus =p
A idéia do Boaglio é muito boa, funciona e está até o momento mostrando resultados, o quadro branco comprei ontem, pois eu havia colado Post its com as colunas e embaixo colava minhas tarefas, estava uma porcaria, uma mesa cheia de post its colado, dai comprei um quadro e estou agora organizando tudo nele.

Abaixo estão algumas fotos do quadro que montei e conforme for evoluindo o projeto vou comentando no blog como está indo e se conseguirei exito assim como o Boaglio.

Fotos do Kanban:


Em breve postarei mais de como anda essa experiência que estou tentando fazer.

Eduardo Bregaida

23 de janeiro de 2010

Incopatilbilidade entre as versões do Java 6 e o servidor J-BOSS 4.2.3.GA

Olá pessoal;

Estou aqui para postar um problema de incompatibilidade entre as versões do Java 6 e o J-BOSS 4.2.3.GA ao tentar acessar um determinado WebService.
Durante o desenvolvimento de um determinado projeto, precisei em um dado momento consumir um certo WebService governamental a partir de seu WSDL e em seguida, acessá-lo.
Até consumir não tive problemas, mas ao iniciar o servidor de aplicação, me foi retornada a seguinte exception:


"java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
at javax.xml.soap.SOAPMessage.setProperty(SOAPMessage.java:424)
at org.jboss.ws.core.soap.SOAPMessageImpl.(SOAPMessageImpl.java:83)
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:161)

I found that the jbossws-native-saaj.jar library has an OVERWRITTEN class javax.xml.soap.SOAPMessage which has overrided the method setProperty():
"

Após alguma pesquisa e várias tentativas consegui isolar o problema e entendê-lo. A forma encontrada para solucionar o problema foi movendo a api "jboss-saaj.jar" geralmente localizada na biblioteca"client" para a biblioteca"endorsed" localizada dentro do diretório "lib", logo no primeiro nível. Ex: "/lib/endorsed>"
Dessa forma a exception é desconsiderada.
A explicação para esse problema se dá ao fato de que na versão atual da SUN (Java 6) essa api já vem implementada. Ao iniciar a aplicação para tentar acessar o WebService requerido, a classe SOAPMessage da SUN (protocolo SOAP) que se encontra na api "jboss-saaj.jar" é utilizada, causando a exception.
A solução é carregar essa api "jboss-saaj.jar" antes da JDK, adicionando-a na biblioteca "endorsed" do servidor de aplicação, conforme falei.
Dessa forma a prioridade são as apis que se encontram nessa biblioteca. Ao iniciar o servidor de aplicação, "sempre" serão iniciadas as apis que se encontram na biblioteca "endorsed" do servidor antes das apis da JDK, resolvendo o conflito de apis.
Espero ter ajudado.

Arthur Gomes.




23 de dezembro de 2009

BOAS FESTAS

Pessoal esse ano foi corrido, faculdade (até que enfim acabou), emprego novo, muita coisa aconteceu em 2009.
Mas em 2010 vamos continuar melhorando.
Desejo eu Eduardo e toda equipe do Java Anywhere um ótimo Natal e uma entrada perfeita de Ano para todos vocês que nos acompanham.

Abraços.

15 de novembro de 2009

O estigma de herança múltipla em Java

Olá galera;

Faz um tempo que não escrevo, mas achei um tempinho e para um assunto interessante. Existe herança múltipla em Java?
Estive recentemente em uma entrevista que por sinal foi em uma empresa de grande porte. Na entrevista me foi pedido para explicar o conceito de herança múltipla em linguagem Java.
Pessoal, de vez em quando esquecemos os primórdios da programação em Java. Uma classe só consegue extender uma única classe. Ainda não é possível extender mais de uma classe em Java. Extender uma classe é utilizar do conceito de herança.
Ao mesmo tempo, podemos implementar "n" Interfaces. Implementar uma Interface, por mais parecido que seja, não é conceito de herança. Estou implementando a assinatura dos métodos, que por sinal serão sempre abstratos em uma Interface na classe que estou utilizando e obrigatóriamente todos eles.
No meu caso, em relação a essa entrevista, é claro que não entrei em discussão, mas de forma alguma aceitei a explicação do uso da Interface como conceito de herança múltipla, como o arquiteto Java que me entrevistou tentou me convencer.
Isso é meio que um alerta para provas de Conceito em entrevistas. Espero ter ajudado.