Últimas notícias do evento

Especificação JNoSQL

Postado em

duke-diana-minRepassando o anuncio do Otávio Santana:

“Olá Galera tudo bem?

Nesse momento acabei de apresentar a iniciativa do JNoSQL para o JCP-EC em Londres.

Basicamente, esse projeto visa criar uma especificação para a comunicação para os bancos não relacionais. Segue a apresentação: https://goo.gl/2pKwrd1

Segue o projeto no qual tem alguns detalhes e também sobre o projeto: https://www.eclipse.org/jnosql/1

Uma coisa importante é que ele, recentemente, foi aprovado para a Eclipse Foundation.

Esteja à vontade para forkar e dar sua opinião sobre o projeto: https://github.com/JNOSQL
Também temos e-mail list: https://dev.eclipse.org/mailman/listinfo/jnosql-dev1

Por favor, estejam a vontade para fazer quantas perguntas quiser sejaa na lista ou também no email list.Também, estou me colocando a disposição para apresentar esse projeto para o seu JUG, mesmo que isso seja via hangout.

Nossa meta é receber o maior número de feedbacks possíveis sobre o projeto, e então submeter como JSR no final de fevereiro.”

Catálogo de Refatoração: Organizando Dados #5

Postado em

advertising-by-the-numbers-its-big-business-with-big-numbers-to-matchSubstituir Enumeração por Classe – use quando encontrar uma classe que tenha uma enumeração numérica utilizada como variáveis inteiras de forma que não afete seu comportamento. Substitua o numero por uma nova classe.

Substituir Enumeração por Subclasse – use quando encontrar uma classe que tenha uma enumeração numérica utilizada como variáveis inteiras que tenha influência no comportamento da classe. Substitua a enumeração por subclasses e use polimorfismo para lhe dar com o comportamento variável removendo switch ou ifs referentes a decisões comportamentais.

Para todas as informações, veja o post inicial.

“Guardo a tua palavra no meu coração para não pecar contra ti.” Salmos 119:11

Feedback Curso EAD – Groovy M1

Postado em Atualizado em

feeback“For-J está de parabéns, o curso Groovy M1 – Pacote Desenvolvedor Groovy realmente me surpreendeu! Treinamento com ótima didática, até o momento não tinha conhecimento de linguagem funcional e dinâmica, quando comecei a fazer o curso,  fiquei surpreso com a quantidade absurda de Dry (código repetitivos) que escrevemos na linguagem Java. Neste curso foi possível aprender que tudo que fazemos na linguagem Java, em Groovy tem uma forma menos verbosa de escrever o mesmo código, impossível de se fazer em Java, trazendo mais produtividade, um código menor, mais fácil manutenção, não perdendo os conceitos de orientação a objetos. Este curso me proporcionou ter uma maior produtividade em projetos existentes, pois posso implementar novos casos de usos utilizando Groovy, sem quebrar o código Java já existente.”

Edson Santos, Londrina – PR.

Mensageria não é um bicho de 7 cabeças

Postado em Atualizado em

activemq-5-x-box-reflectionVocê já ouviu falar de MOM?

Message oriented middleware (MOM) é servidor de aplicação (infra-estrutura de software + hardware) idealizado exclusivamente para suportar o envio e recebimento de mensagens entre sistemas distribuídos. É um serviço utilizado para intermediar a troca de mensagens entre sistemas, com o objetivo de fazer integração de serviços.

Para que serve um MOM?

Serve para dar solução robusta e confiável na integração entre duas ou mais diferentes soluções. Integrar sistemas hoje é um desafio imenso, diferentes plataformas, diferentes tecnologias, diferentes protocolos, diferentes mecanismos de persistências, assim, se faz necessario garantir serviços dentro da solução de integração como por exemplo: desacoplamento, entrega de mensagem, persistência de mensagem, politicas de retry, processamento assíncrono, escalabilidade, confiabilidade, transação, interrupções, segurança, clusterização e muito etc. Um MOM já faz tudo isso e muito mais.

MOM é para ser utilizado em soluções de grande porte?

Essa é justamente meu ponto: você lendo tal definição, tem a falsa impressão que só usaria um MOM para fazer coisas gigantescas e exorbitantes!!! Mas depois de conhecer Apache ActiveMQ e Spring JMS, você vera que é muito fácil e pode usar para fazer coisas pequenas também. Como diria um amigo meu, “só na manteguinha….. 🙂 “.

Você já ouviu falar de ActiveMQ?

ActiveMQ é uma implementação de um middleware completo (MOM), open source e grátis. Ele possui todas as grandes features necessários para dar solução em coisas de “grande porte”, mas o que o pessoal desconhece é que ele tem um arquitetura tão flexível e é tão bem feito que oferece diversas opções de uso e configurações flexíveis. Umas delas é usar o serviço de MOM de forma “embarcada”, dentro da sua própria instancia da JVM e da solução, não precisando criar um servidor remoto exclusivo para isso. Juntamente com isso, você desabilita as chamadas remotas e questões de persistência, e assim, acaba ficando com um mini-serviço de MOM simples, local com suporte a filas(Queue) e tópicos(Topics) que é justamente a “cereja de bolo” desse tipo de serviço.

Você já ouviu falar de Spring JMS?

Spring JMS é kit de desenvolvimento arquitetural que faz parte do framework spring criado exclusivamente para se trabalhar com integração de sistemas usando MOM. Esse produto abstrai toda a infra-estrutura de código utilizada para programar esse tipo de solução, criando uma facade de serviços rápida, produtiva e fácil de usar, retirando a necessidade de fazer código sujo e infraestrutural (boilepart) necessário para se configurar, enviar e consumir mensagens de um MOM.

Vamos fazer um exemplo prático?

Segue abaixo um exemplo real dessa simples e robusta solução:

Ferramentas:

  • Maven
  • Eclipse Java EE IDE for Web Developers – Versão Neon.1
  • Groovy-Eclipse plugin

Projeto:

Segue os passos resumido do projeto:

Crie um projeto java maven: New project -> Maven Project. Adicione groovy no projeto: botão direto no projeto -> configure -> Convert to groovy project. Configure o pom para baixar as dependências básicas: groovy, spring, cdi e activemq:

1

Configurar o spring.xml, subindo o activemq local, sem persistência, sem jmx, sem chamada remota. Configurar uma fila simples e um listener de fila. Configuramos também um jmsTemplate que é a facade de serviços spring que esconde a código sujo de MOM e JMS.

2

Criar um bean que envia a mensagem da fila:

2

Criar um bean que consome as mensagens da fila:

3

Fazer uma classe simples com main para testar o envio e o consumo da mensagem:

3

Execute a solução e teremos a saída:

3

E assim, com  menos de 5 minutos, e poucas linhas de código você consegue embarcar e reusar um MOM completo fazendo filas, tópicos, sem persistência, sem chamada remota, sem gastar muita memoria, rápido, fácil e sem perder tempo fazendo na unha qualquer coisa do tipo. Sem contar que você pode evoluir mais esse produto, habilitando serviço por serviço, tudo de acordo com sua necessidade.

Aonde eu uso isso?

Precisou integrar sua solução java com e-mail?, web services soap? web services rest?, banco de dados legados? ou quer gerar um relatório pesado assincrono? Esta ai seu ponto de partido. ActiveMQ + Spring JMS = Solução simples e rápida com todos os sabores de processamento assíncrono usando filas e tópicos 100% MOM.

Como eu aprendo mais sobre esse assunto?

Tudo isso e muito mais pode ser encontrado no livro ActiveMQ in Action. Excelente livro sobre conceitos de mensageria, JMS e integrações em geral. Boa leitura para todos 😉 .

“Mas tu, ó SENHOR, me proteges como um escudo. Tu me dás a vitória e renovas a minha coragem.” Salmos 3:3

Criando Sistemas Manuteníveis # 4

Postado em Atualizado em

man-drawing-an-electrical-diagram-chamadaEscreva um código somente uma vez

Escreva um pedaço de código somente uma única vez, fazendo com que todas as outras partes que precise usar, reuse aquele código. Nunca copie e cole ou duplique um pedaço de código em outro lugar, mesmo que contenha alguma mínima variação. Caso aconteça situações de variações, faça alguma coisa para reusar o mesmo código: passando parâmetros, usando polimorfismo, programação dinâmica “duck type” e etc. Qualquer coisa, menos duplicação de código! Essa regra simples ira fazer toda a diferença depois que a solução virar um “monstro”. É exatamente essa prática que determinara depois se é você que ira controlar o software ou será ele que ira controlar você! Gostaria de aprender práticas de arquitetura de software? Veja nosso curso AQT M1 – Arquitetura de Software com Java.

Este post faz parte de uma serie de posts, veja o inicial.

“O teu amor é melhor do que a própria vida, e por isso eu te louvarei.” Salmos 63:3

Groovy + EJB = Feijões Mágicos

Postado em

51015-dd0bc957c5fe42809ec2b9ea3450e031Os conhecidos feijões java chamados de EJB são por si próprio capacitados com muitos poderes. O que aconteceria se, além disso eles fossem objetos Groovy? Acredito que virariam feijões mágicos kkkk !!!! Como fazer? Segue as dicas:

Ferramentas

Use as seguintes ferramentas:

  • Apache TomEE JavaEE 6 application server
  • Eclipse Java EE IDE for Web Developers
  • Groovy-Eclipse plugin
  • Maven

Projeto

Segue os passos resumido do projeto:

  1. Configure o TomEE no eclipse como Tomcat 7.
  2. Crie um projeto web maven: New project -> Maven Project.
  3. Adicione groovy no projeto: botão direto no projeto -> configure -> Convert to groovy project.
  4. Configure o pom para baixar as dependências básicas: junit e groovy.
  5. Crie o EJB com groovy+ teste no junit e rode usando servlet simples.

Fontes

Segue os prints:

pom

ejb

tdd

Servlet

Com a mistura do Groovy  + JEE7 um novo mundo de opções se abre. E você? Gostaria de aprender a usar Groovy? Veja nosso curso Groovy M1 – Pacote Desenvolvedor Groovy. Te aguardo por la…

“Mas as pessoas são tentadas quando são atraídas e enganadas pelos seus próprios maus desejos.” Tiago 1:14

Arquitetura DDD Desmistificado

Postado em

sem-titulo

Nesse belíssimo artigo sobre DDD, Lorenzo Dee desmistificou vários segredos a respeito de DDD que na maioria das vezes ficam nas “entrelinhas” escondidos nos livros. Você gostaria de aprender a como criar uma arquiteturas dessas? Veja no curso de Arquitetura de Software AQT M1. Bons estudos 😉 !

Tu és grande e poderoso, glorioso, esplêndido e majestoso. Tudo o que existe no céu e na terra pertence a ti;1 Crônicas 29:11