Hospedagem Profissional

Hospedagem Profissional
Clique aqui e ganhe US$ 10,00 para testar durante 1 mês a melhor hospedagem: Digital Ocean!

segunda-feira, 4 de novembro de 2013

Curso: JSF2 + PrimeFaces + BootStrap


Curso: Persistência no Java em Banco de Dados




quarta-feira, 30 de outubro de 2013

Melhores formas de atualizar números de versão de módulos de um projeto Maven

A divisão de um projeto Maven em módulos é considerada uma boa prática e é muito utilizada no mercado em geral.

Segundo a documentação oficial (Maven by Example - Chapter 6. A Multi-module Project), é indicado que a versão seja definida somente no projeto Pai (parent) e que os módulos do projeto herdem a versão, dessa forma facilitando e centralizando o processo de alteração da versão.

No projeto "parent":

 <project xmlns="http://maven.apache.org/POM/4.0.0"  
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0  
                http://maven.apache.org/maven-v4_0_0.xsd">  
   <modelVersion>4.0.0</modelVersion>  
   <groupId>org.sonatype.mavenbook.optimize</groupId>  
   <artifactId>simple-parent</artifactId>  
   <packaging>pom</packaging>  
   <version>1.0</version>  
   <name>Chapter 8 Simple Parent Project</name>  
   <modules>  
     <module>simple-command</module>  
     <module>simple-model</module>  
     <module>simple-weather</module>  
     <module>simple-persist</module>  
     <module>simple-webapp</module>  
   </modules>  
   ...  
 </project>  

E no módulo :

 <project xmlns="http://maven.apache.org/POM/4.0.0"  
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0  
                http://maven.apache.org/maven-v4_0_0.xsd">  
   <modelVersion>4.0.0</modelVersion>  
   <parent>  
     <groupId>org.sonatype.mavenbook.optimize</groupId>  
     <artifactId>simple-parent</artifactId>  
     <version>1.0</version>  
   </parent>  
   <artifactId>simple-command</artifactId>  
   <packaging>jar</packaging>  
   <name>Chapter 8 Simple Command Line Tool</name>  
   ...  
 </project>  

Perceba que não existe definição de versão para o módulo em si e sim uma referência à qual versão do "parent" este módulo deve herdar.

Mesmo utilizando essa estratégia, nos momentos em que é necessário gerar uma nova versão o processo de atualização da mesma nos arquivos pom.xml dos módulos se torna uma tarefa desagradável e passível de erro. Uma alternativa para facilitar a vida é utilizar o plugin Versions-Maven, mais especificamente o "goal" versions:set.

Por exemplo:

 mvn versions:set -DnewVersion=2.0  

O comando acima irá atualizar a versão do "parent" e as referências à essa versão em todos os módulos do projeto de 1.0 para 2.0

Se por um acaso desejar reverter as alterações realizadas, o comando a seguir pode ser executado:

 mvn versions:revert  

Caso tudo esteja de acordo, as alterações podem ser confirmadas :

 mvn versions:commit  

Em tempo: Por padrão, esse plugin realiza um backup das versões anteriores dos arquivos pom.xml.
Se você estiver seguro o bastante,  você pode desativar esta opção utilizando o parâmetro -DgenerateBackupPoms=false

Para a documentação detalhada, acesse  o link http://mojo.codehaus.org/versions-maven-plugin/set-mojo.html

Não deixe de dar uma olhada também no "goal" versions:update-child-modules :

"versions:update-child-modules: updates the parent section of the child modules of a project so the version matches the version of the current project. For example, if you have an aggregator pom that is also the parent for the projects that it aggregates and the children and parent versions get out of sync, this mojo can help fix the versions of the child modules. (Note you may need to invoke Maven with the -N option in order to run this goal if your project is broken so badly that it cannot build because of the version mis-match)."

Em um próximo post falarei sobre o plugin Maven Release Plugin, o qual possui um "goal" com função semelhante, o release:update-versions, porém agrega uma série de outras atividades auxiliares no processo de release de uma versão de um projeto Maven.

quarta-feira, 23 de outubro de 2013

Como visualizar as diferenças entre um branch local e um remoto do Git

Geralmente, antes de atualizarmos nosso branch local com as alterações realizadas no repositório remoto, é necessário e prudente que vejamos quais alterações foram realizadas e qual será o impacto dessa atualização.

Quando usamos o git pull diretamente, é o equivalente a utilizar o git fetch e depois o git merge.

Sendo assim, entre o git fetch e o git merge podemos utilizar o git diff, git cherry ou git log para visualizarmos as alterações realizadas no brach remoto que não foram atualizadas no branch local.

Vejamos um exemplo:

 git fetch origin
 
 remote: Counting objects: 37, done.  
 remote: Compressing objects: 100% (15/15), done.  
 remote: Total 20 (delta 9), reused 0 (delta 0)  
 Unpacking objects: 100% (20/20), done.  
 From ssh://mygitserver.com/myrepo  
   d10975d..de50252 master   -> origin/master  

Feito isso, agora podemos inspecionar as diferenças.

Por exemplo, para visualizarmos a lista de commits que foram feitos no branch remoto e que não estão no brach local:

  git cherry master origin/master
  
 + de50252fa7bbefd7326a514c0e5f46b2b98a197e  

Na saída acima, identificamos que existe um commit realizado a ser mesclado com nosso branch local, porém somente com o "hash" fica difícil extrair informações sobre esse commit, sendo assim, podemos usar o próximo comando para obter mais detalhes.

 git log origin/master ^master
  
 commit de50252fa7bbefd7326a514c0e5f46b2b98a197e  
 Author: Fulano de Tal   
 Date:  Thu Oct 10 11:36:09 2013 -0400  
   Atualização do Menu e lista de clientes  

Agora melhorou, já podemos saber quem foi o autor, qual o dia e hora que o código foi submetido e também conseguimos visualizar a mensagem que o autor informou ao realizar esse commit.

Porém, se ainda assim você precisar saber quais foram os arquivos alterados e quais as alterações realizadas, podemos utilizar o próximo comando:

 git diff master origin/master
  
 diff --git a/myrepo/src/main/java/br/com/mycompany/myproject/action/ClienteList.java
 new file mode 100644  
 index 0000000..a758bf7  
 --- /dev/null  
 +++ b/myrepo/src/main/java/br/com/mycompany/myproject/action/ClienteList.java  
 @@ -0,0 +1,30 @@  
 +package br.com.mycompany.myproject.action;  
 +  
 +import java.util.List;  
 +  
 +import javax.persistence.EntityManager;  
 +import javax.persistence.Query;  
 +  
 +import org.jboss.seam.annotations.In;  
 +import org.jboss.seam.annotations.Name;  
 +  
 +import br.com.mycompany.myproject.entity.Usuario;  
 +  
 +  
 +@Name("clienteList")  
 +public class ClienteList {  
 +  
 +    @In  
 +    EntityManager entityManager;  
 +      
 +    public List findClientes() {  
 +  
 +            Query q = entityManager.createQuery("select object(o) from Usuario as o Order by o.nome");  
 +            q.setParameter("setor", 2);  
 +            q.setParameter("situacao", 1);  
 +            return q.getResultList();  
 +    }  
 +      
 +      
 +      
 +}  

Tendo visto agora todos os commits a serem mesclados no branch local detalhadamente, e estando de acordo com essas alterações, podemos finalmente aplicar as alterações.

 git merge origin/master
  
 Updating d10975d..de50252  
 Fast-forward  
  .../br/com/mycompany/myproject/action/ClienteList.java   |  30 ++++++++++++  
  1 file changed, 30 insertions(+), 0 deletions(-)  
  create mode 100644 myrepo/src/main/java/br/com/mycompany/myproject/action/ClienteList.java  

Pronto, nosso branch local está sincronizado com o branch remoto.

terça-feira, 15 de outubro de 2013

Novidades do Sencha Touch 2.3


Sencha Touch 2.3 now with iOS7 support, Touch Grid, Cordova support and more!



domingo, 6 de outubro de 2013

Amazon WS - Tutorial Mão na Massa sobre o banco de dados como serviço Amazon RDS

Este tutorial irá abordar o lançamento de uma instância de banco de dados relacional RDS e a configuração de uma EC2 para usar o RDS para as necessidades de bancos de dados.

Caso queira uma explicação completa e um vídeo mão na massa sobre o tema, recomendamos também que assista ao vídeo Introdução EC2 e RDS Mão na Massa – Instalando uma aplicação Web na nuvem da AWS .


Os pontos a seguir serão abordados neste tutorial:
  • Iniciar um banco de dados RDS
  • Modificar nossos web servers para usar esse novo serviço de banco de dados relacional
  • Backup e recuperação de um banco de dados RDS


01

Tutorial desenvolvido por José Papo (AWS Tech Evangelist para a América Latina) e evangelistas AWS com revisão e editoração da iMasters.

Clique aqui para visualizar o conteúdo completo.

Amazon WS - Tutorial Mão na Massa sobre Auto Scaling

Auto Scaling representa mais do que uma forma de adicionar e remover servidores. É também um mecanismo de monitorar falhas de uma maneira similar à forma como os Load Balancers monitoram servidores que não respondem. Este tutorial irá guiar o usuário sobre como configurar um Auto Scaling para se lançar automaticamente, monitorar, e atualizar um ELB associado com suas instancias EC2.

Recomendamos fortemente que você assista ao vídeo mão na massa que explica o Auto Scaling e o demonstra passo a passo antes de realizar esse tutorial.


Importante! Tenha certeza que você apagou o Auto Scaling no final do dia ou dos tutoriais. Como você verá neste tutorial, o serviço faz exatamente o que você manda ele fazer, e se você simplesmente terminar os servidores, ele será notificado e irá iniciá-los novamente. 30 dias depois você irá se perguntar porque recebeu uma cobrança da AWS. Instruções de como finalizar todos esses serviços da forma correta você encontra no final deste tutorial.

Tutorial desenvolvido por José Papo (AWS Tech Evangelist para a América Latina) e evangelistas/arquitetos AWS com revisão e editoração da iMasters.

Clique aqui para visualizar o conteúdo completo.

Amazon WS - Tutorial Mão na Massa sobre Elastic Load Balancer

Este tutorial ira abordar como criar um ELB para fazer balanceamento da carga de tráfego através de várias intancias (servidores Cloud) EC2 em uma mesma Availability Zone. Iremos abordar os seguintes tópicos:
  • Lançar multiplos web servers em um bloco
  • Criar um Elastic Load Balancer
  • Configurar o ELB para servir de frente aos web servers

301.bmp

Tutorial desenvolvido por José Papo (AWS Tech Evangelist para a América Latina) e evangelistas AWS com revisão e editoração da iMasters.

Clique aqui para visualizar o conteúdo completo.

sexta-feira, 4 de outubro de 2013

PrimeFaces 4.0 Released


PrimeFaces Team is pleased to announce the 4.0 Final Release. After months of development and hard work, 4.0 is now available, free as a community release (fully featured suite under apache license). There are close to 350 improvements over 3.5, please see full changelog for details.

JSF 2.2 Support
PrimeFaces 4.0 brings first-class support for JSF 2.2. Important features like pass through attributes, reset values, servlet 3.x uploads are supported. Thanks to internal runtime detection, 4.0 can also run on 2.0 and 2.1 implementations.

Client Side Validation Framework
CSV is one of the highlights of 4.0, bringing JSF validations to the client side using a lightweight approach with HTML5. Bean validation is supported out of the box in addition to the features like custom events, APIs for extension, localization and more.

Dialog Framework
Dialog Framework is an alternative approach to using declarative dialogs, using DF it is easy to reuse external xhtml views in dialogs thanks to the dynamic approach of DF. Advanced features like customization and communication between host-dialog are also provided.

Search Expressions
Search Expressions goes beyond the basic keyword support of JSF by providing new keywords, improves PFS with jQuery selector integration and more. It has never been easier to find components.

Deferred Loading
OutputPanel is equipped with handy deferred loading mechanism, using this feature you are able to load content after page load or when a certain area becomes visible after scrolling.

HTML5 FileUpload
FileUpload has been rewritten from scratch to fix the problems of old one. Powered by HTML5, new fileupload adds new features and has been improved greatly in terms of quality.

Component Features
There are new components like fragment, multiSelectListbox, sticky and existing components have been improved with new features such as sticky datatable headers, dragdrop for tree, grid layout for checkbox-radio and many more.

Maintenance
Until 4.0, there has been 16 Elite Maintenance releases. Thanks to PrimeFaces Elite, quality has been improved drastically in 4.0 and will be much better with the frequent 4.0.x Elite Releases.

Documentation
User’s Guide is updated to cover 4.0 and has reached 530 pages. It is available at documentation page.

Maven Central
PrimeFaces 4.0 is in maven central repository available for download, snapshots will also be deployed to oss snapshots repository.

Elite Discount
For a limited perioud until 4.0.1, we are now offering %20 discount for 1 year Elite Subscription that reduces the fee from 249$ to 199$.

Roadmap
We’ll now focus on releasing PrimeFaces Mobile 1.0 which was on hold due to 4.0 dependencies and the PrimeUI 1.0. PrimeFaces 4.1 will be available in Q1 of 2014 and  Elite Development for 4.0.x will start as of today whereas Elite for 3.5.x will be available until the end of 2013.

Always bet on Prime!

Infos: 
  • www.primefaces.org
  • blog.primefaces.org

Arquiteturas de Software para o Século XXI


By Jose Papo




segunda-feira, 26 de agosto de 2013

Trailler Primefaces 4.0

Aí galera, saiu o trailer do Primefaces 4.0 com suporte ao JSF 2.2, que ainda não tem uma data oficial de lançamento, porém será dentro de algumas semanas segundo o site oficial.

Algumas funcionalidades interessantes estão para ser lançadas, confiram :



PrimeFaces 4.0 Trailer from cagataycivici on Vimeo.

Mais em http://www.primefaces.org

quarta-feira, 21 de agosto de 2013

Review Yolab S02E01 em Cuiabá


Pessoal, no último sábado (17/08/2013) foi realizado o Yolab S02E01 no Centro de Sustentabilidade SEBRAE.

O evento contou com mais de 100 participantes e ótimas palestras, que com certeza inspiraram muito os presentes.

A primeira palestra foi do Gustavo Piccin (@gpiccin) com o título "Além dos Post-Its" e deu simplesmente uma aula de história sobre os conceitos que levaram à criação das metodologias ágeis e como o verdadeiro foco deve ser dado ao fator humano e não somente em metodologias ou tecnologias.


Abaixo os slides da palestra.



Depois veio a palestra do Gabriel Santos (@gabriel_araujo) com o título "Desenvolvendo Jogos para o Mercado Mobile".
Essa palestra prendeu muito a atenção dos participantes, principalmente por se tratar de um assunto de interesse do mundo geek e de todas as curiosidades, novidades e dificuldades de se desenvolver um game para mobile em um mercado pouco explorado e pouco difundido.


Abaixo os slides da palestra.



Para dar uma acordada, depois da palestra sobre games tivemos um ótimo coffee break que animou a galera para o resto do evento.


A próxima palestra foi do Henrique Bastos (@henriquebastos), o nosso ilustre convidado do RJ que inicialmente era para ser sobre "Ecossistema DJango", porém de última hora decidiu mudar os rumos de sua apresentação para "Empreendendo Comunidades de Sucesso".

Essa palestra foi foooooooooooo...................a!  Só digo isso, fez a galera refletir sobre um monte de coisas sobre o dia a dia de quem trabalha com tecnologia, principalmente desenvolvimento de software.
E não só questões profissionais, mas questões pessoais também. 



Abaixo um vídeo onde Henrique Bastos dá praticamente a mesma palestra citada acima.


Para aqueles que esperavam a palestra "Ecossistema Django", o Henrique indicou um vídeo de sua autoria que aborda o assunto de forma bem completa.


Por fim houve um bate papo sobre o "Cenário Cuiabano de Desenvolvimento de Software", o qual participei em conjunto com colegas que atuam na área de tecnologia em órgãos públicos e empresas privadas.



Abaixo os temas debatidos entre os integrantes do bate papo.



Nesse bate papo surgiram algumas indagações interessantes, e algumas constatações, por exemplo, que o mercado de tecnologia em Cuiabá tem como o maior cliente o governo. Isso é fato!!

Porém uma sugestão interessante no final por parte de um integrante da platéia, e que acho extremamente importante acatar, é promover uma maior participação das empresas privadas que atuam atendendo o mercado privado. Quais tecnologias essas empresas utilizam? Qual o tipo de produto que desenvolvem? Qual o perfil de seus clientes? E mais, como promover uma maior participação dessas empresas e seus profissionais em nossos eventos? Inclusive na organização é claro!

Trabalharemos nisso...

Sucesso! Esse é o resumo do evento, e que venham os próximos. Um fator importante a se destacar é sobre a organização do evento, que embora a galera da foto abaixo deu um direcionamento para tudo acontecer, a maior parte do que foi organizado, desde coffe break, local para o evento, divulgação, matéria na imprensa, banner, etc, foi tudo conseguido de forma colaborativa, através da participação da comunidade a partir dos grupos YodoJoGrupoTI MT e StartUP MT.

Isso é o melhor de tudo e vem de encontro com o que queremos: promover a união e fortalecimento da galera de TI de MT e principalmente compartilhar conhecimento.



Não posso deixar de agradecer também aos patrocinadores que apoiaram o evento permitindo sua realização como a CBANET, DataInfo, Totem TI, Corregedoria Geral da Justiça de MT e Sebrae MT.

E é claro, como o Henrique Bastos falou em sua palestra:

Hora extra de programador tem que ser no bar.... 8 horas por dia já é hora pra k.... lho!
Então, lá se foi a galera para o bar para comemorar o sucesso do evento.


Clique aqui para visualizar mais fotos do evento tiradas pelo nosso amigo Lauro Ojeda da Use Coworking

Curso de Arduino em Cuiabá


A USE Coworking iniciará um curso de Arduino para iniciantes, hobistas, entusiastas e curiosos da área em eletrônica e robótica. O curso terá teoria e muita prática. É pra botar a mão na massa (nos circuitos) mesmo!!! 

No curso será ensinado:
- Eletrônica básica 
        (soldagem básica, componentes básicos: protoboard, leds, motores, servos, resistores, módulos prontos, etc)
- Arduino básico/intermediário 
        (ensina o que é e como funciona, programação do microcontrolador, shields, etc)
- Robótica básica

Pré-requisito: traga um notebook. Pode ser qualquer configuração, basta estar funcionando!
Desejável: Lógica programação
Carga horária: 20hrs de curso + 4hrs de ajuda no desenvolvimento dos projetos dos alunos no fim do curso!

Datas: (31/08, 14/09, 21/09, 28/09, 05/10)/2013 das 13:00 às 17:00

Vagas limitadas a 15 pessoas somente.
Valor: R$ 470,00 à vista ou R$ 520,00 em 3x no cartão de crédito/cheque
--> Para cada indicação que efetuar a matrícula, você ganhará 10% de desconto com limite de até 30% de desconto.

Preencha esse formulário para fazer sua pré-inscrição.

quarta-feira, 14 de agosto de 2013

Evento yoLab (Season 2) - Encontro de tecnologia discute soluções em desenvolvimento de Software

Encontro de tecnologia discute soluções em desenvolvimento de Software neste sábado
Entre os palestrantes está o criador do projeto ‘Welcome to the Django’

Tecnologia, informação, ecossistema Django e desenvolvimento de jogos são alguns dos temas que serão tratados durante o Yolab - encontro de profissionais de Tecnologia da Informação - marcado para este sábado (17/08), às 14 horas no Centro Sebrae de Sustentabilidade em Cuiabá. Haverá ainda, uma discussão sobre o cenário Cuiabano de Desenvolvimento de Software. O evento é gratuito e destinado aos profissionais das áreas de tecnologia, estudantes e interessados na área.

Entre os palestrantes está o criador do projeto ‘Welcome to the Django’, Henrique Bastos, que trabalha com desenvolvimento de sistemas com Python, Django e Métodos Ágeis. Ele atua constantemente nas comunidades de software, organizando eventos e encontros e disseminando o desenvolvimento sustentável de softwares no Brasil e no exterior.

Outras duas palestras também farão parte do evento: ‘Além dos post-its’, ministrada pelo engenheiro de Software, Gustavo Piccin, e ‘Desenvolvendo jogos para o Mercado Mobile’, com o analista de sistemas, Gabriel Araújo. A primeira deve tratar de agilidade e tem como propósito desmistificar alguns mitos por trás do Agile. Já o segundo tema, deve abordar os erros e acertos no que se refere ao desenvolvimento de jogos para a plataforma mobile.

Para se inscrever basta ligar: 0800 570 0800 (Sebrae).

Saiba mais

Há alguns anos, um grupo de desenvolvedores de software cuiabanos com alguns pontos de vista em comum, decidiram se reunir para trocar experiências a partir de discussões técnicas. Na necessidade de um nome, autointitularam-se "comunidade yoDojo". Tempos depois trouxeram à Cuiabá a prática de Coding Dojo (prática de desafios em desenvolvimento de software). Com o feedback gerado nas retrospectivas dos dojos, surge, então, a necessidade da promoção de palestras de conteúdo técnico, para facilitar a adoção de algumas ferramentas aos dojos e para simples comunhão de aprendizagem. Nasce assim o que, por falta de nome melhor, denominou-se yoLab.


 

Mais informações: http://yodojo.github.io/yoLab/




Com colaboração de Caroline Pilz Pinnow
Jornalismo e Assessoria de Imprensa
(65) 81105500/ (65) 99932221

segunda-feira, 12 de agosto de 2013

Novidades do JBoss Tools 4.1 e Red Hat JBoss Developer Studio 7 go GA

Confira abaixo o artigo de Fred Bricon sobre a versão 7 do JBoss Developer Studio e JBoss Tools 4.1 direto do site da Red Hat.




On behalf of the JBoss Tools and Developer Studio team, I'm extremely proud to announce the general availability of the JBoss Tools 4.1.0.Final and Red Hat JBoss Developer Studio 7.0.0.GA releases.


JBoss Tools 4.1.0.Final and Developer Studio 7.0.0.GA

To Infinity and Beyond, but Mobile first!

Developer Studio: [Marketplace] [Download] |
Tools: [Marketplace] [Download] [Update Site] |
 [What's New] [Forums] [JIRA] [Twitter]


JBoss Tools is a set of plugins for Eclipse that complements, enhances and goes beyond the support that exists for JBoss and related technologies in the default Eclipse distribution.

Red Hat JBoss Developer Studio is a fully bundled Eclipse distribution which not only includes the majority of JBoss Tools but also all its needed dependencies and 3rd party plugins allowing for an easy one-click and no-fuss installation.

If you are into doing your own bleeding edge Eclipse plugin assembly, JBoss Tools is for you; if you are more into having something that "Just Works" then JBoss Developer Studio is the way to go.

Installation


JBoss Developer Studio is available with a one-download-installer with everything bundled and configured out of the box.

You can also install JBoss Developer Studio or JBoss Tools from Eclipse Marketplace via "Help > Eclipse Marketplace..."

When installing from Eclipse Marketplace we recommend using a fresh Eclipse 4.3 JEE Bundle since then you'll have most of the dependencies pre-installed.

Note: SOA tooling for BPEL, Drools, Guvnor, jBPM, ESB, Modeshape, pi4soa, Savara, SwitchYard & Teiid, in future referred collectively as the JBoss Tools or JBoss Developer Studio Integration Stack (JBT-IS or JBDS-IS), are not yet available for this release. They will become available separately later. If you wish to use these today we recommend you continue to use JBoss Tools 3.3 or JBoss Developer Studio 5.0, or try one installing the latest unsupported nightly build from this update site:
http://download.jboss.org/jbosstools/updates/integration/kepler/integration-stack/aggregate/4.1.0/

Performance and stability improvements


JBoss Tools 4.1.0 and JBDS 7.0 are built on top of Eclipse Kepler (e4.3), which brought noticeable performance and stability improvements over the previous Juno version (e4.2). But we also improved the performance in some of our own features (Central, JAX-RS tooling, Web Service testing).

We worked really hard to fix more than 1600 bugs and feature enhancements into this release.

We have so much good stuff this time around, it's hard to cram everything into a (readable) blog post, so I'll just present the major features we have here, introduced since JBoss Tools 4.0 and JBDS 6.0. But make sure to read the complete New and Noteworthy for a more detailed and complete overview.

TL;DR : The recurring theme of this release is "HTML5 and mobile development". Burr Sutter made a screencast highlighting several of the new features available in this release :



LiveReload


Probably the coolest new features we have, the new LiveReload server allows you to have your browser automatically refresh when you save your html, javascript and css files.You can just focus on content and functionality and instantly see and use the changes in your browser. If it is hard to imagine how it works, Xavier Coulon made a video showing how to activate and use it (on the right).



You should install a LiveReload plugin/extension into your browser as documented in our What’s New and Noteworthy. If you can't, don't worry, keep reading.

LiveReload supports local (i.e. file:// based urls) or content served out from an application server. In the latter case, the browser will reload once the files are published on the application server, especially useful when editing JSF content like xhtml.

You can right-click on files in the Project Explorer view or on modules deployed to a server, to load your Browser with a LiveReload enabled page. This action will setup the LiveReload server for you if it does not already exist :
open-with-livereload.png
Our server implements the existing defacto protocol used by the original LiveReload and related plug-ins, meaning any browser, script and tool that works with live reload today should work with our Eclipse implementation of it.

It's really nice to have instant feedback for HTML5/JS based applications. But wait, it's getting even better.

Proxying and Open in external Device


If your browser does not have the LiveReload plugin, like Safari or you're using a mobile device, you would normally manually add a livereload.js loading snippet in every web page. That can be tedious and requires changes to files you might not want to commit to your source repository. It's alright. Please meet our "LiveReload Proxying" :
http://docs.jboss.org/tools/whatsnew/images/LiveReload_open_in_web_browser_via_qrcode-dialog.png
It is enabled by checking "Inject the livereload.js script in HTML pages" in the LiveReload Server configuration. This allows you to proxy your file:// urls and have them served out on localhost:35729/<projectname>/<filepath> (or any other port if you choose so in the LiveReload Server configuration) .

For security reasons, remote connections are disabled by default, so if you want mobile devices to be able to load the page, just enable "Allow Remote Connections".

Now, typing a complex, long url on a mobile device can be tedious, so in order to make your life even easier, we've added a "Show In > Web Browser on External device..." menu. This will display a QR code for the LiveReload enabled url. Simply use a QR reader application and have the webpage load on your device. Watch your pages reload as you make the modifications in your IDE, it's close to black magic!

HTML5/JQuery Mobile Palette


To further improve your HTML5 / mobile development experience, we’ve added a new HTML5 palette with initial support for JQuery Mobile widgets. This palette will show up when you edit HTML5 files (files with <!DOCTYPE HTML> doc type). If it does not show up, it is probably using HTML4 or XHTML content types.

The JQuery Mobile palette features a dialog preview when you click or drag one of the buttons for a component, it lets you see and customize what will be inserted :
http://docs.jboss.org/tools/whatsnew/jst/images/4.1.0.Alpha2/lf.png http://docs.jboss.org/tools/whatsnew/jst/images/4.1.0.Beta1/set.png
Alexey Kazakov recorded a video to show it in action.

BrowserSim goodies


BrowserSim is a mobile web browser simulator, used to test your web pages on mobile devices with a realistic mobile device skin.

Now guess what? your mobile application development experience just scored 11. In this release, we've added a bunch of really exciting features, available with a right-click on the device bezel :
  • synched browsing : open the same web page in 2 different but synchronized browsers. You can test horizontal and landscape modes at the same time or view how layout behaves on different devices simultaneously.
  • screenshot : easily take screenshots to share your awesome design or nasty bug you want someone to hunt down.
  • debugging facilities : use Firebug Lite for easy local debugging, or debug remotely using any Weinre compatible server to debug/inspect the application running in BrowserSim.
  • new skins galore
browsersim-firebug.png
Please note BrowserSim must be launched with a 32bits JRE (you can now select it in JBossTools > BrowserSim / Cordova preferences) and Safari must be installed on your machine.

Windows 64-bit Visual Page Editor


A long standing issue for our Visual Page Editor was the lack of proper Windows 64-bit XULRunner integration.

Carsten Pfeiffer did an awesome contribution and made this happen. If you're using Windows 64 bit, and if you follow the JBoss Tools Visual Editor FAQ link, you will be told to try to install XULRunner from http://download.jboss.org/jbosstools/builds/staging/xulrunner-1.9.2_win64/all/repo/

Hopefully you should see the following, before and after installing the proper XulRunner version :
http://docs.jboss.org/tools/whatsnew/vpe/images/4.1.0.Beta1/missing-xulrunner.png http://docs.jboss.org/tools/whatsnew/vpe/images/4.1.0.Beta1/vpe-win64.png
We would love to hear if this works for you on Windows 64-bit or if you still see problems.

You can give your feedback on this bug

Hybrid Mobile via Apache Cordova (Experimental)


If real, cross-platform Mobile application development is your thing, we now have experimental support for developing Hybrid mobile applications with Apache Cordova.

You can create an "Hybrid Mobile" project and test and develop it using the Android SDK and XCode for iOS testing.

http://docs.jboss.org/tools/whatsnew/aerogear/images/runConfigs.png

Note: this is only available as Experimental in JBoss Tools, not part of Developer Studio (yet)

CordovaSim (Experimental)


To help testing hybrid mobile development we've extended our BrowerSim to use Ripple to provide a way to do portable testing (meaning you do not necessarily need Android or XCode installed to do development)
http://docs.jboss.org/tools/whatsnew/browsersim/images/4.1.0.Beta1/CordovaSim-demo.png
Note: this is only available as Experimental in JBoss Tools, not part of Developer Studio (yet)

Forge integration


The majority of the feedback we got for the awesome integration of Forge into Eclipse was that many preferred to use a wizard over only having access to a "command line style" UI.

We listened to you and added new wizards, to give an Eclipse front-end to the following Forge features:
  • Generate Entities from existing tables
  • Generate REST Endpoint from Entities
  • Scaffold UI (JSF or AngularJS based) from Entities

You will find these wizards - which are Technology Preview as of this release - under "File > New > JBoss Tools":

new-forge-based-wizards.png
Make sure you read a detailed description of these wizard in Forge What's New. Oh and to make it all work, we now embed the Forge 1.3.3.Final runtime.

Please note these wizards are considered Technology Preview, thus, even though they're included, are not supported in JBoss Developer Studio.

The long term goal is to get a closer integration between Forge and Eclipse. This is a current work in progress with Forge 2, which is now available as an experimental download for JBoss Tools

Arquillian (Experimental)


Arquillian Eclipse is a new JBoss Tools component that makes Java EE integration testing using Arquillian easier. The Arquillian support can be added/removed by right-clicking the project and selecting Configure>Add/Remove Arquillian support.

The project has to be a Maven (m2e) project. The "Add Arquillian Support" action adds the Arquillian nature to the project as well as arquillian artifacts (bom, dependencies, required plugins, profiles ...) to the project's pom.xml. The Remove Arquillian Support removes the Arquillian nature, but doesn't change the project's pom.xml.

A new "Arquillian JUnit Test Case" wizard, based on the JUnit Test Case wizard, adds the following to a created class:
  • @RunWith(Arquillian.class) annotation
  • the deployment method
arquillian-junit-1.png arquillian-test-3.png
Enabling Arquillian support also brings you validation, navigation across arquillian resources, launch configuration... You'll most certainly want to read a more complete overview of the Arquillian support here.

Note: this is only available as Experimental in JBoss Tools, not part of Developer Studio (yet)

OpenShift


OpenShift Tools received a good deal of improvements, usability wise. Improved UI, more explicit labels where needed, but more importantly :

Git output streaming


Ever since we added OpenShift support to Eclipse we've had the problem that EGit did not allow streaming of console output when performing a push.
http://docs.jboss.org/tools/whatsnew/openshift/images/publishing-to-openshift.png
This mean that when doing a long running push Eclipse would just have a blank console and show "Push in progress".

In Kepler, EGit now includes our contribution of allowing this meaning Git users and OpenShift users can and will get streaming of the console output. You can now see what is going on.

Restart OpenShift Application


We've added "Restart" to the UI, allowing you to trigger a node restart for your application in case something bad has happened or you changed a configuration that requires a full node restart.
http://docs.jboss.org/tools/whatsnew/openshift/images/restart-application.png

Create application from a remote repository


Opening the advanced section of the New OpenShift Appliction wizard, you can now create an application directly seeded from a remote git repository (github for instance) instead of forcing you to use git recursive merges locally.
http://docs.jboss.org/tools/whatsnew/openshift/images/advanced-source-code.png

Configure OpenShift markers


OpenShift is using markers to enable or disable features. These markers are hidden files added to the <project>/.openshift/markers directory. You can now add/remove/edit these markers by invoking a wizard from the OpenShift > Configure Markers... menu in th Project- or Package-Explorer.
http://docs.jboss.org/tools/whatsnew/openshift/images/configre-markers-wizard.png

Application creation logs


When creating applications you want to know about the credentials that OpenShift initially set for you. This is especially helpful and required when you create a jenkins where you get its url and username/password presented. We now display what OpenShift did for you if there's anything to be noticed for any type of application and/or cartridge.

JBoss Central


JBoss Central, the welcome screen of JBDS / JBoss Tools has a new design. We've tried to make it easier for you to get started building new applications, providing more samples, displaying descriptions of what each wizard gives you.
http://content.screencast.com/users/fbricon/folders/Jing/media/679e2a00-11e7-4f3c-910a-1cc1d0fcf79a/2013-07-19_0953.png
You can also access wizards for features you haven't installed yet, such as the OpenShift Application. You'll be prompted to install the required OpenShift Tools feature if you haven't installed it already.

In the software/update tab, you'll find we have added VJet, a promising new JavaScript editor, which should help you build, you know, HTML5 and mobile applications.

Servers and runtimes


New server adapters


  • JBoss EAP 6.1, freely available to developers (you can get it from the JBoss AS download page), now has its own server adapter.
  • WildFly now also has its own dedicated server adapter. Please note it's still considered experimental as WildFly itself is not stabilized to this day. We recommend using the latest Alpha-3 release, which fixes some file locking issue on windows and now support JSP development mode.
new-server-adapters.png

Better server identification


Servers derived from JBoss AS 7.x (JPP, SOA-P, GateIn), are now properly identified, making searching runtimes easier to setup. We now reuse the stacks.yml descriptor provided by the JBoss Developer Framework to provide downloads of different runtimes and thus providing a consistent experience, as part of the JBoss Way initiative.

Better server management


Server tools now uses the AS 7.x/EAP/WildFly management api, allowing for faster and more reliable (re)starts of servers, as well as better module management (individual module restart, status information).

Tomcat runtime detection (JBoss Tools only)


A new Tomcat runtime feature detection allows you to automatically detect and create tomcat-based servers, after scanning a specified server directory.

Maven Integration++


m2e 1.4.0 and m2e-wtp 1.0.0


  • JBDS comes with m2e 1.4.0 which brings some performance enhancements, as well as a very convenient Alt-F5 shortcut, to update project configuration, when it's gone out-of-synch.
  • we contributed the JBoss JPA/JSF/JAX-RS configurators to the m2e-wtp project at eclipse.org, which just graduated from the Eclipse Incubator into version 1.0.0, adding support to Java EE 7.

In this Kepler release the configuration of these configurators moved under the Preferences > Maven > Java EE Integration.

Automatic Source Lookup for the masses


Ever tasted m2e's awesome automatic source download but were frustrated when going back to work on legacy, non-maven projects? Then rejoice, we now enable automatic source lookup for *all*, non-maven java projects.

The automatic Source Lookup feature is based on Maven/m2e. As such, downloaded sources will be stored under your local Maven repository.

Since JDT doesn't support variables in source attachments (such as M2_REPO), source attachments use absolute (non-portable) paths. It's ok when the jar is part of a Classpath Library, since the path is stored in your own workspace. But it can become a problem if your jar dependency is listed in your project's .classpath descriptor, potentially shared with other developers. For this reason, by default, you'll be warned when a compatible source has been found :
automatic-source-lookup.png
The good news is the source lookup mechanism is capable of fixing bad source attachements, even for Maven enabled projects. If the attached source doesn't exist (ex. you wiped out your maven local repository or shared hard-coded source attachments in your scm) or doesn't contain the right source files, it will try to download the proper source.

Maven repository edition


Maven Repositories defined in profiles in your settings.xml (Window > Preferences > JBoss Tools > Maven Integration > Configure Maven Repositories...) can now be edited with the "Edit Repository..." button :
edit-maven-repositories.png

And much more...


there's not enough room here to list all the great things the team managed to pull. Better JAX-RS tooling performance, JSF 2.2 and updated Deltaspike support, improved web service tester (now using JBoss Wise). So, again, make sure you take a look at the news and screenshots in our What's New page.

Giving Feedback


Please don't hesitate to use our forum to ask questions, or, if you have ideas to better improve JBoss Tools / JBDS, or found a bug, then open an issue in our issue tracker.

What's Next ?


First, some of us are gonna take a tiny bit of rest in the coming weeks. Then we'll work on a service release, mainly focused on bug fixes, to accompany the Eclipse Kepler SR1 release in september. Hopefully, new features should see the light of day by the end of the year.

Have fun!

Fred Bricon

http://twitter.com/fbricon

quinta-feira, 25 de julho de 2013

Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de manter, indefinidamente, passos constantes.

Reflexão sobre o artigo: http://scrum.jeffsutherland.com/2008/09/maxwell-curve-getting-more-production.html Lendo um artigo do Jeff Sutherland de 2008, um dos pais do Scrum, sobre o seu trabalho na OpenView Venture Partners, me deparei com a seguinte frase, a segunda do artigo:
“As venture capitalists we used to want people to work harder and harder to get more productivity, certainly more than 40 hours a week. We would push them and push them until they started to burn out, get demoralized, and threaten to quit.”
Certamente é algo que eu já vi acontecer em várias startups, já vi vários empreendedores acreditarem nisso e vários sendo incentivados a trabalhar todos os dias, 10 horas por dia ou mais. Sim, pela vivência que eu tive o diferente é se trabalhar 8 horas por dia.
Depois de muito ter refletido sobre essa frase, continuei lendo o artigo para ver onde ele iria parar e no fim ele conclui que diminuir de 60 horas semanais para 40, fez a quantidade de pontos de história aumentar 20%, porém o retorno para a empresa aumentar em 160%. Vejam só, quando se trabalhava 20 horas a mais por semana, se fazia menos da metade de coisas importantes do que quando se trabalhava 40 horas. Além disso, ele conseguiu pessoas motivadas, que não vão estar esgotadas daqui a algum tempo.
Após ler esse artigo, cheguei a seguinte conclusão:

O melhor mesmo seria trabalhar 30 horas por semana.

alt text
Reparem que o pico de produtividade de um time que usa Scrum é perto das 32 horas por semana, o que garantiria focar o máximo na direção correta. Vendo isso venho aqui propor um modelo para se trabalhar somente 30 horas e obter mais produtividade do que com 40 horas ou 60:

Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho.

  • Continue pagando 40 horas para os seus desenvolvedores e nas 10 horas que você estaria "dando de graça" para eles, peça que as usem para ficarem de standby caso alguma eventualidade(servidor cair) aconteça. Sei que essas coisas acontecem e é melhor pedir para eles gastarem essas 10 horas extras, do que o fim de semana com a família.
    • Se você contratou bons desenvolvedores, eles sempre vão estar procurando aprender coisas novas, praticar e ficarão muito motivados se não tiverem que fazer isso no momento de lazer. Considere as 10 horas a mais que você está pagando como um investimento no treinamento da sua equipe. Já vi várias empresas perderem bons desenvolvedores, por esses não estarem conseguindo se desenvolver.
    • Nada estressa mais um profissional do que se programar para esquecer do trabalho e receber telefonema do chefe em um momento inoportuno, então deixar um dia já combinado para ser o dia do desespero é uma solução para isso.
    • Trabalhar presencialmente menos dias na semana, implica em menos horas desperdiçadas no transito.
    • Uma sugestão que recebi, foi de pagar essas 10 horas restantes em cursos ou eventos culturais, como cinema, teatro e etc. Isso ajuda a tornar o ócio em um momento criativo (Pesquisar pelo livro, Ócio Criativo).

O Método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de uma conversa cara a cara.

alt text
Sempre fui muito a favor do trabalho remoto, mas reconheço que ele não é a melhor maneira de transmitir conhecimento e informação e para o time se manter produtivo nessas 30 horas deve-se evitar falha na comunicação e ,na minha visão, o trabalho presencial traz esse ganho em cima do trabalho remoto. Então minha segunda sugestão, baseada no Scrum é:
  • Comece o trabalho em um horário pré combinado com o time (deixe eles escolherem), que faça com que eles produzam mais, e marque reuniões diárias com eles como a primeira coisa do dia, para que todos tenham certeza do que está planejado para ser executado, e peça para ninguém chegar atrasado. Uma prática sugerida pelo Scrum é aplicar uma penalidade que agregue quando um atraso aconteça, como por exemplo, pode pegar 2 horas para executar tarefas em outro setor, por exemplo suporte ao usuário, trabalhando assim 32 horas nessa semana. Obvio que times que se comunicam bastante durante o dia, a reunião de manhã passa a ser desnecessária, caso isso seja sua realidade, sugiro conversar com o time para saber qual a melhor maneira de motivá-los a chegar no horário acordado. O importante, na minha visão, é todos estarem juntos e não um trabalhar de tarde até de noite e outro de manhã até a tarde.
    • Acredito que as 2 horas a menos das 32 propostas no gráfico, seriam melhor aproveitadas se o time estiver aprendendo sobre outros setores da empresa, pois a vivência nesses setores fará com que ele entenda os problemas daqueles usuários.
    • Trabalhe em Par. Existem diversos estudos que mostram que diminui a taxa de erro, aumenta a produtividade, principalmente quando a dupla são duas pessoas menos experientes, ajuda a propagar o conhecimento, o aprendizado obtido no tempo de ócio e sua empresa fica menos dependente de um único programador, afinal, ao menos duas pessoas participarão da construção de cada parte do sistema. Os pares devem ser rotativos. É importante ter os 3 tipos de dupla: iniciante x iniciante, iniciante x experiente, experiente x experiente,

Software funcional é a medida primária de progresso.

  • Como o tempo do time passou a ser curto, é necessário que o PO priorize ainda melhor as histórias, deixando na mão do time a estimativa dos pontos de complexidade de cada uma, desenvolvendo assim as que tiverem o maior RoI (Valor de Negócio estimado pelo P.O / Estimativa de Complexidade dado pelo time )
    • Uma das maiores mágicas do desenvolvimento ágil é focar no que realmente vai dar retorno e reduzindo o tempo do time para 30 horas, o PO se vê com uma necessidade maior ainda de priorizar melhor, com isso, diminui-se a quantidade de histórias com o retorno baixo, que normalmente são escolhidas para completar número de "pontos de história" combinados por semana.
    • Isso é algo que deveria ser levado para toda empresa. Se você tem uma palestra/reunião que é necessário uma apresentação, a prioridade deveria ser preparar essa apresentação, antes de qualquer coisa, e não deixar para ultima hora e cobrar que seja lá quem for fazer, virar a noite antes da palestra montando-a. PS: Existe uma chance gigantesca desta pessoa ser você.
    • Prazos são do mal. Peça estimativas para seus desenvolvedores e priorize o que for mais importante para que eles façam o melhor nesse espaço de tempo. O máximo que um desenvolvedor pode fazer é prometer desenvolver o melhor software possível dentro do espaço de tempo acordado. Se ele te disser uma data exata para o fim do projeto, ele está mentindo para você: http://www.akitaonrails.com/2013/04/05/traducao-estimativa-o-melhor-que-podemos-fazer#.UehhKWTwK6w
ps: Quem quiser ler mais sobre o assunto, recomendo o artigo: http://jeffsutherland.com/Agile2008MoneyforNothing.pdf

Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.

A ultima mudança que venho propor é a mudança do que seria o natural: 6 horas dia/5 dias por semana(30 horas) para 3 dias de 10 horas ou 4 dias, sendo 3 dias de 8 horas e um de 6. Fiz uma pesquisa recentemente que mostrou que 43% dos desenvolvedores prefeririam trabalhar 4 dias na semana, 41% 3 dias na semana, e somente 16% os 5 como hoje é estruturada a jornada de trabalho.
  • Agora se a ideia desse artigo é ganhar produtividade motivando as pessoas, me pergunto porque o trabalho em 5 vezes por semana é o mais adotado. O melhor seria conversar com o seu time, não só dessa vez, mas sempre em intervalos regulares, para saber como eles preferem trabalhar e todos chegarem em um acordo.
    • Seu time pode até mesmo dizer que tudo que eu disse acima é idiotice e que eles preferem trabalhar 40 horas, remoto, isolados em uma caverna, etc., e você jogue todas as práticas ágeis fora, mas tome essa atitude porque o seu time acredita nisso, e não você. Lembre, quem vai produzir o valor para sua empresa é seu time, o seu papel é dar a direção e fornecer o melhor ambiente possível para que eles produzam o máximo que conseguirem de forma constante.
    • E escute sempre, mesmo depois de você adotar qualquer prática anteriormente proposta, pois refletir se a direção tomada é a certa é mais importante do que acelerar em uma direção qualquer.
    • Se você vai ficar com algo desse artigo, que seja a melhoria contínua.

sexta-feira, 28 de junho de 2013

The JBoss Application Server, JBoss AS, is now called Wildfly!



The JBoss Application Server, JBoss AS, is now called Wildfly!

Why?

JBoss AS was renamed to reduce confusion between the JBoss Application Server project, the JBoss Community and the Red Hat JBoss product line.

When the JBoss Application Server project was launched in 1999, no one would have ever guessed at how successful the project would become. Today, JBoss represents one of the finest Java EE application servers, a large and vibrant community, and a successful commercial product - JBoss Enterprise Application Platform.

The project continues to provide rapid innovation, cutting edge technology and an environment that inspires a developer to collaborate and contribute to the project's research and development.

The JBoss Community hosts nearly 100 projects focused on integration, business rules, processes, NoSQL, cloud, mobile, polyglot, messaging, tooling, alternative development frameworks and more.

So we asked you, the community, to help the JBoss AS project find a new name, and WildFly was chosen through an election process held in November 2012. Many thanks to the community for helping us with this change. Visit WildFly.org to learn more.

Best news:

Unparalleled Speed

Blazing fast start-up
Experience ground breaking startup speed!
In the highly optimized boot process of WildFly 8, services are started concurrently to eliminate unnecessary waits and to tap into the power of multi-core processors. Non-critical services are kept on ice until first use.
Subsequent boots save additional time by leveraging cached or indexed metadata.
As a result, WildFly offers a 10-fold reduction in startup time over previous versions and even gives Jetty and Tomcat a run for their money.


testable Easily Testable

Arquillian
From the very start, WildFly has been designed with testability in mind. The secret to that fidelity is Arquillian a component model for integration tests that execute inside the real runtime environment.
By removing the clutter from your tests and handling deployment and test execution, Arquillian enables you to write tests for just about any use case your application encounters: real tests.
Thanks to the speed of WildFly, Arquillian tests run nearly as fast as unit tests.

best of breed components A Strong Heritage

A new name
While the name may be new, WildFly is the eigth version of the project previously known as JBoss AS.
Picking up where JBoss AS 7 left off, Wildfly 8 is JBoss' new community project for rapidly driving forward java application server innovation.

quarta-feira, 13 de março de 2013

Previsto para abril de 2013, a nova versão do JavaEE vem com atualizações para as principais especificações, além da adição de várias outras focadas em facilitar o desenvolvimento de aplicações para nuvem no modelo PAAS.

Screen Shot 2013-03-11 at 7.03.58 PM

Vejamos as principais novidades:

JPA 2.1 (JSR-338)
Agora a JPA irá suportar chamadas a procedures de maneira transparente, sem a necessidade de usar código específico de nenhuma implementação:
 
//prepara a procedure
StoredProcedureQuery query = EntityManager.createStoredProcedureQuery("processaBoletos");
//registra os parametros da procedure
query.registerStoredProcedureParameter(1, String.class, ParameterMode.OUT); //saída
query.registerStoredProcedureParameter(2, Integer.class, ParameterMode.IN); //entrada
query.setParameter(2, 001); //seta o parametro
query.execute();
String resposta= query.getOutputParameterValue(1);

Podemos também invocar qualquer função que esteja disponível no banco de dados, através do novo comando FUNCTION da JPQL:
 
SELECT c
FROM Cliente c
WHERE FUNCTION(‘EhClienteEspecial’, c.id)

Os EntityListeners da JPA agora também estão integrados com o CDI, permitindo receber por injeção qualquer dependência usando o @Inject:
 
class PedidoListener{
  @Inject
  private GeredorDeNumero gerador;
 
  @PrePersist
  public void geraNumero (Object o){
    Pedido p = (Pedido) o;
    P.setNumero(gerador.novoNumero());
  }
}

Também foi incluído o suporte a operações de update e delete em lote usando criteria, além de outras funcionalidades.

CDI 1.1 (JSR-346)
Apenas pequenas mudanças e melhorias serão incluídas nessa versão. Entre algumas das novidades esperadas estão permitir a ordenação de Interceptors e Decorators, uma API para criação de contextos personalizados, injeção de objetos estáticos e criação de eventos relacionados a API de Servlets, como inicio/fim de um HTTPServletRequest por exemplo.

EJB 3.2 (JSR-345)
Aqui o foco é continuar facilitando cada vez mais a configuração e o uso de EJBs. Agora teremos suporte a transações dentro de callbacks do ciclo de vida dos beans:
 
@Stateful
public class CarrinhoBean{
  @PersistenceContext
  private EntityManager em;
 
  @TransactionAttribute
  @PrePassivate
  public void armazenaNoBanco(){
     // algum código transacional
  }
     ...
}

As configurações sobre quais interfaces serão expostas nos beans também foram simplificadas:
 
public interface Agendador{}
public interface Executador{}
  //todas as interfaces são locais
  @Stateless
  public class AgendadorBean implements Executador, Agendador{
  ...
}
 
//todas as interfaces são remotas
@Remote
@Stateless
public class AgendadorBean implements Executador, Agendador{
  ...
}

Caso deseje que apenas uma das interfaces seja exposta, é só adicionar a anotação desejada:
 
@Remote
public interface Agendador{}
 
//apenas a interface Agendador é exposta como remota
@Stateless
public class AgendadorBean implements Executador, Agendador{
  ...
}

JSF 2.2 (JSR-344)
 Algumas features que antes só estavam disponíveis através do Seam3 agora fazem parte da especificação. Isso acontece com a tag viewAction e a possibilidade de receber injeção de dependências via CDI em qualquer componente do JSF, como Validator, Converters e até mesmo em componentes customizados.
Uma nova annotation @ViewScoped foi criada em substituição a atual para permitir integração do CDI com ManagedBeans neste escopo. E falando em escopos, o @FlowScoped foi adicionado para ajudar na criação de fluxos pré-definidos, como wizards, sequências de passos em algum fluxo de negócio, etc.
Além destas, ainda há uma integração melhor com HTML5, suporte a configuração programática, um novo componente para upload de arquivos usando ajax, e muitas outras, como é possível ver na lista de novidades no JSF 2.2

JAX-RS 2.0 (JSR-339)
Agora com suporte a uma API de cliente, é possível implementar chamadas a um serviço rest de maneira portável entre os servidores sem a necessidade de bibliotecas externas:
 
Client client = ClientFactory.newClient();
 
//Dispara uma requisição GET para a url http://.../produtos?nome=Caneta
Produto p = client.target("http://.../produtos")
                  .queryParam("nome", "Caneta")
                  .request().get(Produto.class);

Outras novidades são a integração com Bean Validation, suporte a requisições assíncronas tanto na API cliente quanto na servidor, filtros e interceptors.

JMS 2.0 (JSR-343)
JMS foi uma das especificações que mais sofreram alterações, removendo a maior parte do código desnecessário para enviar mensagens:
 
@Stateless
public class EnviadorDeMensagens
  @Resource(lookup = "jms/connectionFactory")
  ConnectionFactory connectionFactory;
 
  @Resource(lookup="jms/fila")
  Queue fila;
 
  public void sendMessageNew (String msg) {
    try (JMSContext context = connectionFactory.createContext();){
      context.send(fila,msg);
    }
  }
}

Além de outras alterações e novas funcionalidades, como o suporte a Paas, melhorias nos Message Driven Beans e envio de mensagens com hora marcada.

Bean Validation 1.1 (JSR-349)
As anotações de validação agora podem ser utilizadas em parametros de métodos:
 
public void login (@NotNull String login, @NotNull String pass){
  ...
}

Componentes como ConstraintValidator agora são integrados ao CDI, além de outras pequenas mudanças.

Outras especificações foram adicionadas ao JavaEE, como JCACHE para gerenciamento de cache de objetos, Batch para execução de tarefas em lote, similar ao Spring Batch, JSON-P com as mesmas funcionalidades do JAX-B, mas para Json. Na lista completa de funcionalidades do JavaEE 7 você pode acompanhar todas as JSRs e conhecer mais sobre as novas especificações e evoluções da plataforma Java.

Fonte: Mário Amaral - Caelum