Categories: Java

Pegando o Mac Address antes e depois do Mustang (Java 6)

Pegando o Mac Address antes e depois do Mustang (Java 6)

Recentemente tive a necessidade de automatizar o preenchimento de um arquivo de configurações. Nesse arquivo, um dos valores que eram preenchidos era o Mac Address.
Logo me veio na cabeça a necessidade de executar o “ipconfig /all” (win) / “ifconfig” (linux) / “?” (mac)… capturar a saída, tratar o retorno, etc. Sem falar nas dificuldades de se fazer um parser independente do SO, do idioma do SO, ou seja, muitas variáveis que ao qualquer descuido fariam o parser falhar. =/
Bom, uma das novidades do Mustang é que a classe “java.net.NetworkInterface” traz um novo método para pegar o Mac Address de forma transparente. O método se chama “getHardwareAddress”. A seguir vou mostrar um exemplo de como pegar o Mac Address antes e depois do Java 6. Acredito que vá ficar claro a simplicidade e confiabilidade do novo método.


Categories: Java, LDAP

JDBC-LDAP Bridge Driver

JDBC-LDAP Bridge Driver

Com a finalidade de facilitar a utilização do serviço de diretórios LDAP a Novell desenvolveu uma ponte JDBC-LDAP. Essa ponte permite a utilização de SQL para fazer consultas ou atualizações em uma árvore de diretórios através de aplicações Java.

O site do projeto é o http://www.openldap.org/jdbcldap/

Eu não encontrei nenhum release do projeto já compilado (se alguém encontrar me avise XD), mas os arquivos fontes podem ser baixados por qualquer cliente CVS. No meu caso utilizei o TortoiseCVS ( http://www.tortoisecvs.org/ ).


Categories: Java, JBoss Seam

Gerando código com JBoss Seam

Gerando código com JBoss Seam

Neste artigo vou tentar mostrar um pouco do gerador de aplicações JEE do JBoss Seam, que após algum tempo de estudo e prática pode ajudar bastante os desenvolvedores.
Não é meu intuito aqui explicar o funcionamento do framework em si (escreverei sobre o mesmo mais pra frente), neste artigo abordarei APENAS a ferramenta de geração de código.
A geração de código sempre foi algo muito polêmico entre os desenvolvedores, alguns repudiam por completo essa prática alegando que o código gerado não é muito limpo, etc..
Por outro lado, não há como negar que praticidade em certos momentos é fundamental. Enfim, venho trabalhando com esse framework há aproximadamente 4 meses e já pude mapear alguns momentos em que a utilização do gerador de código pode colaborar ou dificultar o desenvolvimento. Geralmente, nas ditas aplicações comerciais, utilizamos banco de dados que são formados por “tabelas básicas” e “tabelas de movimentação”. Bom, tabelas básicas são aquelas onde geralmente armazenamos dados que serão apenas consultados, como por exemplo “statuspedido”, que armazenará um determinado número de status de pedidos, que serão praticamente imutáveis. Tabelas de movimentação, por sua vez, são aquelas que sofrem muitas atualizações(Create, Update, Delete) e onde geralmente relacionamos um determinado número de tabelas básicas. O ponto onde quero chegar é: o gerador de código do Seam é muito interessante quando estamos falando de tabelas báscias, onde o CRUD gerado é realmente aproveitável.


Categories: Segurança

Conhecendo a segurança declarativa do Java (JAAS) – Parte 1

Afinal, o que é esse JAAS ?

O JAAS ou “Java Authentication and Authorization Service” é um conjunto de API’s que visam desacoplar as aplicações dos controles de acesso a recursos da mesma, ficou bonita essa frase hein ? na prática isso significa retirar do desenvolvedor a responsabilidade de ter que controlar o acesso a recursos por perfis de maneira programática( filtros e outros meios ilicitos que eu também já fiz /o\ ). Todo o controle passa a ser feito de maneira declarativa no descritor da aplicação, daí o nome segurança declarativa, intuituivo, não ?

Basicamente o JAAS pode ser atilizado para dois propósitos:
– Autenticação de usuários, ou seja, verificar se o usuário é registrado;
– Autorização de usuários, ou seja, verificar se o usuário já autenticado tem permissão de acesso para determinado recurso protegido;

Tá, mas…o que eu ganho usando o JAAS ?

Muitas coisas, você passa a se preocupar de fato com o código que é importante para a sua aplicação, as restrições a determinados recursos não vão mais interferir na maneira como você desenvolver sua aplicação, você pode por exemplo após ter concluído o desenvolvimento fazer as devidas declarações de quais recursos serão protegidos e quem poderá acessá-los. Implicitamente isso tornará seu código mais legível e focado nas regras de negócio. Sem contar que qualquer modificação nas restrições implicará na mudança de apenas um arquivo(web.xml) e não mais em diversos pontos espalhados pela aplicação.


Categories: Java

Agendamento de tarefas em Java

Bom, esse vai ser meu primeiro post técnico e vou falar de um dos recursos que o Java oferece, o agendamento de tarefas…

Esse recurso é bem útil quando precisamos por exemplo de tempos em tempos realizar algum tipo de monitoramento, execução de trabalhos antes feitos por arquivos de lote, entre outros… acredito que de acordo com a sua realidade você vai encontrar uma aplicabilidade interessante…

Bom o principio aqui é o seguinte, temos 2 classes onde uma vai implementar o trabalho a ser chamado pelo agendador(Tarefa.java) e a outra fará o agendamento desta tarefa tarefa(Main.java)…

Main.java