30 de julho de 2007

Vagas para Programadores Java

Estava conversando com a Isabel Bordin do grupo Resource e eles estão necessitando de programadores Java com experiência para projetos na contratação PJ, para diversos projetos em JAVA.
As vagas são de JSE e JEE.
JSE é necessário conhecimentos em Swing, AWT, SWT, Hibernate e conceitos lógicos.
JEE é necessário conhecimentos em Struts 1.x, Struts 2, WebWork, JSF, Spring, Hibernate, TomCat, JBoss e outros frameworks Web em geral.

Lembrando que aí estão alguns frameworks para algumas vagas, não é necessário conhecimento em todos os frameworks.

Quem tiver interesse o e-mail da Isabel é: isabel.bordin@resource.com.br
O Telefone para contato:
+ 55 11 3748-6201

Qualquer dúvida entre em contato com ela ou no site: http://www.resource.com.br/site/index.asp


21 de julho de 2007

Certificação Java...

Galera quero compartilhar a alegria de ontém ter realizado a prova do scjp e ter passado com um score muito legal 81%, agradeço a todos aqueles que me incentivaram e apoiaram.... tem mais aqui:

http://www.guj.com.br/posts/list/65074.java

[]'s

18 de julho de 2007

MyFaces 1.2 é lançado

A famosa implementação de JSF da Apache foi liberada. O release Myfaces 1.2, cuja data oficial de lançamento é 17 de julho, implementa a JSR-252. Já homologado pela Sun, o projeto passou em 100% dos testes.
A api pode ser obtida no site: http://myfaces.apache.org/download.html e seu release notes pode ser visto em: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10600&styleName=Html&version=12312576.
Dentre as novidades está a "louvável" correção de alguns bugs, além de seguir agora a nova (nem tão nova assim) especificação de Java Server Faces.
Contudo ainda não há confirmação de compatibilidade com o Tomahawk, Trinidad e outros projetos de componentes extendidos da Apache, resta a oportunidade de alguém testar e relatar nesse blog se a informação se confirma.

12 de julho de 2007

Palestra JustJava 2007



Pessoal, estarei no JustJava 2007 ministrando uma palestra de JavaServer Faces.
Tema: Produtividade com JavaServer Faces

A idéia é comentar:

-JavaServer Faces como padrão SUN
-Demonstrar a agilidade no desenvolvimento de software com JSF
-IDE´s e plugins
-Frameworks
-Integração com AJAX
-JSR 314 - JSF 2.0
-Regras de Navegação
-Roteiro de um software JSF
-Validadores
-Casos de sucesso
-Pontos fortes e fracos de JSF

Bom o JustJava é um dos maiores eventos de Java do Brasil, fui convocado e já estou organizando minha palestra e o software que apresentarei.
Espero ver o pessoal lá, reencontrar amigos do GUJ e do PortalJava.

10 de julho de 2007

JustJava 2007



Pessoal o JustJava deste ano será nos dias 02,03 e 04 de Agosto, o pessoal do GUJ e da Caelum estarão dando palestras, neste meio estarei falando de JavaServer Faces no evento.
No site existe as informações quanto a valor de entrada, dias e horários das palestras, vale a pena ir no evento para firmar melhor os conhecimentos, conhecer pessoas e rever os amigos do Fórum.
Site do JustJava: http://www.sucesusp.org.br/eventos2007/justjava07/
Espero ver todos vocês.

Aproveitando o tópico estamos com membros novos no blog para melhor crescimento e mais tutoriais, agora contamos com a colaboração de alexandre Santana, Alberto Ribeiro e Fabiana Anjos.

Obrigado por colaborarem para o JavaWORA.

4 de julho de 2007

Tutorial JSF - Parte 2

Bom, terminando o tutorial vou colocar o JSF da página de login e as classes da parte de cadastro com um CRUD completo.

Criada as classes falta criar os devidos JSP das mesmas, então vou montar um JSP bem fácil utilizando libs JSF

Linhas importantes:

Este comando acima além de dizer q o campo é obrigatório (required="true"), no value passamos a EL (Expression Language) com a ação que queremos executar ( value="#{autenticador.login}").

Esta linha nos exibe uma mensagem no qual defini em um properties.
Neste botão eu disparo a ação de pegar os dados do usuário que está logando e validando.

A tela irá ficar mais ou menos assim:

Mas como ligar os Managed Beans na tela?
Pelo faces-config.xml
Ficaria assim:


Em XML:



managed-bean
managed-bean-name autenticador
managed-beanclass br.com.imes.acesso.Acesso
managed-bean-scope session
Todo o Managed-bean tem que ter um nome, uma classe (o Bean lógico), e o scope é para ver se o Bean vai ficar em Sessão ou requisisão.
navigation-rule
from-view-id /login.jsp
navigation-case
from-outcome usuario
to-view-id /agenda.jsp
Aqui eu defino as regras de navegação do meu Bean, para onde vai se a saída for usuário, caso contrário ele mantém o estado e fica na mesma página exibindo a mensagem de erro.
application
message-bundle messages
locale-config
default-locale pt_BR
Nessa área apenas estou dizendo a linguagem nativa que uso e definindo o messages.properties
E pronto, pode rodar que seu login estará perfeitamente validando.
Agora vou colocar as classes e as páginas dos Dados da nossa agenda.
Classe Dados.java
package br.com.imes.dados;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import br.com.imes.acesso.Acesso;
@Entity
         public class Dados {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String telefoneResidencial;
private String telefoneComercial;
private String celular;
private String nextel;
private String email;
private String observacao;
@Temporal(TemporalType.DATE)
private Calendar data = new GregorianCalendar();
public Calendar getData() {
return data;
}
public void setData(Calendar data) {
this.data = data;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCelular() {
return celular;
}
public void setCelular(String celular) {
this.celular = celular;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getNextel() {
return nextel;
}
public void setNextel(String nextel) {
this.nextel = nextel;
}
public String getObservacao() {
return observacao;
}
public void setObservacao(String observacao) {
this.observacao = observacao;
}
public String getTelefoneComercial() {
return telefoneComercial;
}
public void setTelefoneComercial(String telefoneComercial) {
this.telefoneComercial = telefoneComercial;
}
public String getTelefoneResidencial() {
return telefoneResidencial;
}
public void setTelefoneResidencial(String telefoneResidencial) {
this.telefoneResidencial = telefoneResidencial;
}
}
Aqui possui a relação com Hibernate e os getters e setters.
Classe DadosHandler.java

package br.com.imes.dadoshandler;
import java.util.List;
import javax.faces.component.UIComponent;
import javax.faces.component.UIParameter;
import javax.faces.event.ActionEvent;
import org.hibernate.Session;
import br.com.imes.dados.Dados;
import br.com.imes.dao.DAO;
import br.com.imes.hibernate.hibernateutil.HibernateUtil;
public class DadosHandler {
private Dados dados = new Dados();
public Dados getDados() {
return dados;
}
public void setDados(Dados dados) {
this.dados = dados;
}
public void salvarDados() {
Session session = HibernateUtil.getCurrentSession();
System.out.println("Qual id aqui? " + this.dados.getId());
if (dados.getId() == null) {
DAO dao = new DAO(session, Dados.class);
System.out.println("Qual id aqui? " + this.dados.getId());
dao.save(this.dados);
} else {
session.merge(this.dados);
}
this.dados = new Dados();
}
public void deletarDados() {
Session session = HibernateUtil.getCurrentSession();
DAO dao = new DAO(session, Dados.class);
if (dados.getId() == null) {
session.merge(this.dados);
} else {
dao.deleta(this.dados);
}
this.dados = new Dados();
}
//Tabela JSF
public List getDados2() {
Session session = HibernateUtil.getCurrentSession();
DAO dao = new DAO(session, Dados.class);
return dao.list();
}
//Evento do JSF
public void carregaDados(ActionEvent event) {
UIComponent comandLink = event.getComponent();
UIParameter parameter = (UIParameter) comandLink
.findComponent("editId");
Long id = (Long) parameter.getValue();
Session session = HibernateUtil.getCurrentSession();
DAO dao = new DAO(session, Dados.class);
this.dados = dao.load(id);
System.out.println("Qual id aqui2? " + this.dados.getId());
}
//Ajax
public List suggest(String buscaNome) {
Session session = HibernateUtil.getCurrentSession();
DAO dao = new DAO(session, Dados.class);
mandaListaSuggest();
return dao.buscaNome(buscaNome);
}
}
Aqui é onde o programa vai tratar os dados com aquele DAO Genérico criado. Fiz uma pequena brincadeira com AJAX para criar um auto-complete. No Evento do JSF é para pegar o id do usuário para carrega-lo na tabela que só aparecerá quando a mesma estiver montada.
Bom, o suggest ainda não faz nada além de auto-completar, a idéia seria gerar uma pesquisa, mas não implementei, senão deixaria complexo demais para um exemplo simples em JSF, só queria mostrar como é simples implementar Ajax em páginas JSF.
O Amateras não reconhece CSS dentro de tags JSF, logo vocês só verão a tela bonitinha quando rodar do Browser.
Infelizmente o Blogger.com não permite que eu coloque códigos XML, nem HTML na página, não sei porque mas ele tenta rodar, também não deixa nas cores e identização, logo aconselho a baixar o download e testar o código.
Qualquer dúvida estarei disponível, caso eu continue implementando este pequeno projeto eu vou postando ele aqui.
A idéia é que JSF é um padrão da Sun e uma poderosa e rápida ferramenta para se trabalhar.
O Exemplo dispinível com minha palestra no JustJava que está mais completa que este código e com menu está disponível no site, você pode fazer o download do código e testar.

3 de julho de 2007

Caelum


Gostaria de deixar uma pequena homenagem para a escola que mais me auxiliou no assunto Java até o momento.

A Caelum atua no mercado desde 2002, desenvolvendo sistemas e prestando consultoria em diversas Áreas, à luz sempre da plataforma Java. Foi fundada por profissionais que se encontraram no Brasil depois de uma experiência na Alemanha e Itália, desenvolvendo sistemas de grande porte com integração aos mais variados ERPs. Seus profissionais publicaram já diversos artigos nas revistas brasileiras de Java, assim como artigos em eventos acadêmicos, e são presença constante nos eventos da tecnologia.

Composto por instrutores altamente qualificados com grande reconhecimento dentre eles: Paulo Silveira, Guilherme Silveira, Fabio Correia Kung, Sérgio Lopes, Thadeu Russo, Rafael Cosentino, Nico Steppat, Alexandre Magno e Fernando Gomes.

Bom, estou dedicando este post, pois foi nesta instituição que eu conheci a fundo o que meu antigo professor do técnico (Marcos Mendes) havia me ensinado, devo muito a Caelum e a todos os instrutores, pois mesmo acabando o curso, até hoje me tiram dúvidas e me dão suporte.
É difícil encontrar uma instituição tão boa e que se preze quanto a Caelum é.

Visitem o site para conhecer melhor a instituição, algumas apostilas estão disponíveis para download: Site da Caelum
Está dada minha mensagem para todos que quiserem um ótimo curso de Java.

Falando em Java 2007




Bom pessoal, antes de continuar o tutorial quero pedir desculpas por não ter terminado ele ainda, está tudo meio corrido aqui na empresa, mas prometo que logo logo vou postar o que falta dele.

Antes disso gostaria de dizer do evento que fui sábado dia 30/06/07, o evento FALANDO EM JAVA 2007, realizado pela Caelum.

O evento foi ótimo, o que achei extremamente interessante foi a abordagem dos assuntos.
O tema era web 2.0
Philip Calçado falou sobre o que era Web 2.0, logo após Fábio Kung demonstrou Interfaces ricas na Web com Ajax, passando pelo Guilherme Silveira Expondo serviços na Web 2.0 e Paulo Silveira falando sobre Lucene sobre o tema Organizando conteúdos com tags e Lucene, para fechar com chave de ouro o palestrante Sérgio Lopes nos deu um show com o tema JavaFX: interfaces em Java de forma fácil e portável, o evento esclareceu muitas dúvidas e nos mostrou como a Web 2.0 será vista no futuro e como ela já está sendo implantada, nos mostrando integrações de serviços e como Java está se comportando deste novo ambiente.
O pessoal da Caelum estão de PARABÉNS, excelente evento.

No evento encontrei vários amigos além dos organizados que eu considero demais, como o Paulo Silveira, Guilherme, Fabio, Sérgio, as meninas da Caelum.
Encontrei o Microfilo (Rubem Azenha), o Lipe (desaparecido), o Alexandre Santana e a Fabi, o professor Aparecido Freitas, Fernando Meyer alguns alunos que estudaram comigo na Caelum e muitos outros (tantas pessoas que é difícil lembrar todos os nomes, me perdoe se eu esqueci de alguém).