domingo, 5 de fevereiro de 2012

Como trocar o log level do Glassfish em linha de comando

Algumas vezes os logs do Glassfish não fornece informações suficientes para identificarmos o problema ocorrido, podemos alterar os níveis de log em tempo de execução sem a necessidade de reiniciarmos o servidor.
Entre no console de administração asadmin.

Com o comando list-log-levels podemos visualizar todas as configurações de logs.

Com o comando set-log-levels podemos definir o nível de log.

Podemos também executar essas operações em instâncias específicas:
list-log-levels <instancia>
set-log-levels <instanciajavax.enterprise.system.container.ejb=<nivel>

Os níveis de log são: SEVERE, WARNING, INFO, CONFIG, FINE, FINER e FINEST.


sexta-feira, 11 de março de 2011

Prazo de validade para o Java


Já pensaram em prazo de validade para o Java? A Oracle já e implantou, a alguns dias fica explodindo o balão pedindo para eu atualizar o Java e eu não fiz esta atualização, hoje ao tentar utilizar um applet Java simplesmente recebo a mensagem que a minha versão do Java está desatualizada e por isso plugin foi desativado.

Saudades da Sun.


segunda-feira, 31 de janeiro de 2011

Android é a plataforma mais popular para smartphone

A plataforma da Google passou o Symbiam da Nokia como líder da plataforma para smartphone no 4º trimestre de 2010.


Fonte: Canalys

A venda de dispositivos ultrapassou 100 milhões de unidades, praticamente o dobro do último trimestre de 2009.

A estratégia da Google para dominar o mercado foi desenvolver um sistema aberto que permitisse vários fabricantes como LG, HTC, Motorola e outros possuírem um sistema moderno a baixo custo, mas as vantagens de integração com os aplicativos web da Google.

sábado, 18 de setembro de 2010

Google Developer Day 2010

O Google Developer Day 2010 será realizado em São Paulo no dia 20/10 e as inscrições são gratuitas e já iniciaram no dia 15/09.

São Paulo é uma das cinco cidades que cediam o evento.

Este ano será abordado temas sobre o Android, Chrome e HTML5, Plataforma de Nuvem e APIs do Google.

Mais informações sobre o evento você encontra no site.

Para fazer a inscrição você precisará preencher um formulário fornecendo alguns dados de contatos, enviar um resumo de seu currículo em PDF ou DOC.

Após esta etapa há uma avaliação para confirmar que você realmente é um desenvolvedor, é um questionário com cinco questões em inglês com um trecho de código, onde você deve interpretá-lo e informar o resultado deste código, o tempo para a prova é de 30min (fique atento pois não há um relógio na página).
As perguntas são diferentes para cada inscrição.

Após esta prova você será comunicado em duas semanas se a sua inscrição foi aprovada ou não.

Veja abaixo o questionário que foi proposto na minha inscrição:

Question A
What does the following program (given in pseudocode) print?
x = 1
y = 1
if y > 3, then
y = y * 2
else
x = x * 2
print (x + y)

Question B
How many times does the following program print 'hello'? (note: the for loop in our pseudolanguage includes the endpoints, so, for example, 1 to 4 means 1, 2, 3, 4.)
for i = 1 to 6
if i != 7, then
for j = 1 to 5
print 'hello'

Question C
Between 1909 and 4407 (inclusive), how many numbers are even and also divisible by 3? (Hint: you can write a program to help you calculate)

Question D
Mary has a pretty positive attitude about math. To her, a number is adorable if it contains the digit 4 but not the digit 9. So, in her opinion, how many adorable numbers are there between 10778 and 26105, including the endpoints?

Question E
In the quiet countryside village of Seeplusplusville, all phone numbers have 6 digits. The phone company imposes these rules on numbers:
  • There cannot be two consecutive identical digits, because that's lame;
  • The sum of the digits must be even, because that's cool;
  • The last digit can't be the same as the first, because that's unlucky.
So, given these very reasonable, mature and well-designed rules, how many phone numbers in the list below are valid?
214195,217606,220404,224933,229195,232379,232950... (havia 200 números nesta lista)

Como esta última não ficou claro qual deve ser a soma dos dígitos acho que eu não gabaritei... :)

Boa sorte a todos que forem fazer a inscrição.

terça-feira, 6 de julho de 2010

Introdução ao sistema de controle de versão distribuído Egit/JGit

O Git é um sistema de controle de versão distribuído, desenvolvido originalmente para a plataforma Unix em C, de uso livre e de código fonte aberto foi desenhado para suportar pequenos e grandes projetos como o Kernel do Linux de forma rápida e eficiente.

Os projetos EGit (plugin cliente para Git) e JGit (implementação em Java do Git) foram incorporados pela Eclipse Foundation e passaram ser suportados por todas as plataformas compatíveis com o Java 5 e agora fazem parte da versão Eclipse Helios.

A Eclipse Foundation manteve o projeto aberto para que qualquer um possa criar novos clientes para outras aplicações como NetBeans e clientes web para acesso ao repositório.

A funcionalidade básica de um sistema de controle de versão é criar um histórico em um conjunto de arquivos com a possibilidade de voltar estes arquivos a outro estado.

Em um sistema de controle de versão distribuído cada cópia efetuada é um repositório completo que possui históricos e revisões, não dependendo de acesso a rede e de servidor central.

O Git permite salvar as alterações localmente (commit) e mesclar as alterações com os repositórios remotos (merge). Se você quer uma cópia do repositório você deve efetuar uma cópia do mesmo (clone). Os repositórios podem ser combinados enviando as alterações ao repositório remoto (push) ou obtendo as alterações do repositório remoto (pull).

O repositório distribuído trás uma série de vantagens como:
  • Acesso rápido ao histórico por estar acessando os dados em um disco local.
  • Evita problema com quedas do servidor já que não possui um ponto central de falha.
  • Qualquer cliente pode se tornar um servidor.
  • Permite que parte da equipe execute um trabalho remoto com seu código sincronizado, criando tags, revisões e posteriormente sincronizando com o repositório principal da empresa.
  • O backup se torna trivial.

O Git pode ser gerenciado através de linha de comando, mas neste artigo cobriremos apenas uma das opções de ferramentas gráficas, o EGit.

Instalação
Acesse no Eclipse Helios o menu Help > Eclipse Marketplace.
Pesquisa por EGit no Marketplace.

Clique Install no plugin EGit - Git Team Provider.
Siga o assistente para concluir a instalação do plugin.

Adicionando um projeto ao controle de versão
Crie um novo projeto Java e chame-o de HelloGit.
Clique com o botão direito do mouse em cima do projeto no Project Explorer.
Acesse o menu de contexto Team > Share Project.

Escolha o Git como tipo de repositório e clique no botão Next.

Neste ponto será criado o repositório para o projeto.
Clique em HelloGit, o campo a frente do botão Create Repository será preenchido automaticamente.
Clique no botão Create Repository e em seguida no botão Finish.

Havendo um repositório existente o mesmo será selecionado automaticamente.

Efetuando Commit
Clique com o botão direito do mouse em cima do projeto no Project Explorer.
Acesse o menu de contexto Team > Commit.


Informe um comentário sobre o que está sendo aplicado ao repositório e clique no botão commit.


Na próxima publicação vou falar um pouco mais sobre as operações de controle de versão como commit, branch, tag e consulta ao histórico, até lá.

Referências:

quinta-feira, 1 de julho de 2010

Teste do Tomcat 7

Dia 29/06/10 a Apache Software Foundation lançou a versão 7 do seu famoso Servlet Container, o Tomcat 7, ainda é versão beta mas já deve estar bem estável, neste post pretendo descrever algumas melhorias e novas funcionalidades com foco no desenvolvimento Java e construir alguns exemplos.

Especificação JEE6
O Tomcat 7 implementa completamente a especificação Servlet 3.0, JSP 2.2 e EL 2.2 que fazem parte do JEE6, porém ainda não disponibiliza outras especificações importantes como JSF 2.0, CDI 1.0, MB 1.0 e até mesmo a definição Web Profile existente no Glassfish 3 que possui o EJB Lite, mantendo assim a característica principal de Servlet e JSP Container de suas versões anteriores.

Suporte a Servlet 3.0
Esta especificação traz facilidade de desenvolvimento através de annotations, registro dinâmico de Servlet e Filters em tempo de execução, Servlet assíncrono e melhorias de segurança.

Assim para criar um Servlet basta herdar HttpServlet e utilizar a annotation @WebServlet e definir o nome para requisição do mesmo, sem a necessidade de configurar o arquivo web.xml.

@WebServlet("/TesteServlet")
public class TesteServlet extends HttpServlet {
protected void doGet...
protected void doPost...
}

Autenticação na camada de programação
Está disponível métodos de login e logout na request (especificação JEE6).

Servlet assíncrono
A especificação Servlet 3.0 define suporte a requisições assíncronas, evitando se assim a necessidade de criação de Threads quando não há necessidade da espera do resultado do processamento, como em aplicações Comet, aumentando também a escalabilidade.
O Tomcat 7 da suporte a requisição assíncrona, mas não consegui identificar na documentação o quanto disto está concluído.

Web Fragment
A especificação Servlet 3.0 definiu o Web Fragment para facilitar a plugabilidade entre os componentes, assim ao utilizar um jar como o Struts, Spring ou até mesmo um componente desenvolvido por você não será mais necessário alterar o web.xml para definir as configurações da bibliotecas, estas configurações estarão disponíveis no web-fragment.xml do jar, localizado na pasta META-INF.

Uma consideração é que as configurações básicas de um Servlet poderiam ser feitas por anotações, sem a necessidade de utilização do web.xml ou web-fragment.xml, mas há outras configurações que ainda não são possíveis via annotation.

Interface de administração
Infelizmente ainda não disponibiliza uma interface de administração tão completa como a do Glassfish, mas tem o essencial para gerenciamento da aplicação.
Para habilitar a utilização desta interface é necessário atribuir a role manager-gui a um usuário no arquivo conf/tomcat-users.xml e remover os comentários.

<!-- Remover esta linha
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
--> Remover esta linha

Nível de compilação 1.6
Utiliza como padrão o nível de compilação 1.6, o que torna o Java 6 requisito para funcionamento.

Otimização de código
Nesta versão houve várias melhorias no código como utilização de generics, remoção de imports não utilizados, atributos, parâmetros e métodos.
Todos os métodos depreciados foram removidos, é importante uma atenção a isto, pois se você possui componentes para versões anteriores do Tomcat eles podem não funcionar corretamente nesta versão.

Prevenção e detecção de vazamento de memória
Ajuda os usuários a identificar estouro de memória em suas aplicações e até mesmo bibliotecas de terceiros, estava previsto para o Tomcat 7, mas acabou sendo implantado no Tomcat 6 devido a sua relevância.

Caminhos para o contexto
Nesta versão é possível definir outros caminhos para o contexto do servidor, permitindo assim que outros diretórios ou arquivos WAR sejam mapeados para o contexto.

Para obter a lista completa de melhorias, correções e novas funcionalidades consulte a documentação do produto.

segunda-feira, 28 de junho de 2010

Novidades do Eclipse Helios

Recentemente a Eclipse Foundation lançou a versão mais completa do IDE Eclipse até o momento, o Eclipse Helios que incorpora 39 projetos, veja abaixo algumas novidades e melhorias.

Versão 64 bits para Windows.
Está disponível para download uma versão JEE em 64 bits, até as versões anteriores havia várias dependências de bibliotecas do Windows em 32 bits.

Rich Ajax Platform (RAP )
A RAP permite que você crie Aplicações Web Ricas com AJAX, utilizando o modelo de desenvolvimento do Eclipse, o RAP também permite que aplicações RCP sejam executadas na Web com poucas alterações.
Esta plataforma é semelhante à RCP, mas é uma implementação alternativa ao SWT renderizando as aplicações na Web.
As aplicações RAP executam em servlet container e os clientes podem acessar as aplicações a partir de qualquer browser padrão como IE, Firefox, Chrome e Safari, sem a necessidade de instalação de plugins.

Eclipse Marketplace
Para facilitar a pesquisa e distribuição e atualização de plugins a Eclipse Foundation lançou recentemente um novo site, chamado Eclipse Marketplace, que fornece uma lista de soluções baseadas em Eclipse.

JavaScript Development Tools (JSDT)
Tem o objetivo de desenvolver uma IDE para aplicações em JavaScript, com suporte completo para edição, pesquisa e refactoring. A funcionalidade do JSDT é fortemente baseada na funcionalidade das ferramentas de desenvolvimento Java. Um motor de inferência é usado para determinar o tipo e classe de estruturas a partir do código JavaScript, possibilitando o máximo de funcionalidade equivalente ao JDT.

Git Support at Eclipse (EGit)
Adiciona suporte ao sistema de controle de versão GIT, que é um SCM distribuído, onde cada desenvolvedor tem uma cópia completa de toda a história de cada revisão do código, fazendo consultas em relação a história muito rápido e permitindo um trabalho off-line.

Javaserver Faces (JSF) Tools
Adiciona suporte JSF ao Eclipse Web Tools Platform para simplificar o desenvolvimento e a instalação de aplicações JSF.

PHP Development Tools (PDT)
Prove mais funcionalidades de edição de códigos para PHP, como novos templates e coloração de sintaxe e mais 50 melhorias.

Java Development Tools (JDT)
Há uma série de melhorias para o desenvolvimento Java como: Novas opções de formatação de código, painel de detalhes dos breakpoints, melhorias para análise estática, contador de instâncias de objetos.

Melhorias nos Recursos
Foram adicionadas melhorias aos recursos do IDE como: Criação de pasta virtual, gerenciamento de permissão, aprimoramentos na caixa de diálogos Open Resource, abertura de arquivos a partir da linha de comando em instâncias abertas do IDE e console OSGI.

Eclipse Communication Framework (ECF)
É uma ferramenta para suporte de aplicações e ferramentas distribuídas baseadas no Eclipse, pode ser usado para criar plugins, ferramentas ou aplicações RCP assíncronas.

XText
É uma ponte entre as gramática, modelos e a ferramenta de suporte a linguagem de programação, o que permite criar um ambiente poderoso para uma linguagem de programação, incorporando assistentes de código, conteúdo estilizado, correções rápidas e outras funcionalidades.

Referências:
www.eclipse.org/helios
www.eclipse.org/helios/blogathon/reviews.php
http://eclipsesource.com/blogs/2010/06/23/top-10-eclipse-helios-features
http://wiki.eclipse.org/Helios/Summary_of_Helios_Projects

Follow kerleston on Twitter