Quem é acustomado em desenvolver Servlet, deve ficar atento pois a versão 3.0 da API, terá varias mudanças, a principal e mais conceitual é utilização de Annotations para criar suas servlets, olhando os exemplos na web, o esquema parece com Spring Mvc com annotations.
Sem dúvida essa alteração é um progresso, pois irá tornar mais simples o desenvolvimento das aplicações web, mais detalhes em An Introduction To Servlet 3.0 e na JSR.
O Brasileiro Augusto Ferrarin é premiado por desenvolver aplicação para o ANDROID a aplicação é TerraDesk , o tick tack fez uma entrevista com o Augusto, muito bacana.
O legal deste prêmio é o nome do Brasil aparecendo nas competições internacionais. Também pelo volume do prêmio mostra que o Google Android quer chegar para abalar o mercado mobile.
Android resumidamente é plataforma movel aberta encabeçada pelo google baseada em java. Essa última parte (java) me interessa muito ! isso invariavelmente irá criar novas oportunidades para os desenvolvedores java, ou melhor já esta criando, é melhor como desenvolvedor java acompanhar esta tecnologia.
Você gosta das anotações java ? bom primeiro o que é (anotações)annotations ? anotações são o que eles chamam de metaprogramação, você usa anotações para avisar para o compilador(compile time annotations) ou para JVM (runtime annotations) como sua aplicação deve se comportar.
Anotações vem sendo usada de maneira pesada por conhecidas bibliotecas do mundo java tais como hibernate, web frameworks, etc.
Mais segundo consta no java 7 e também o java EE 6 isso vai mudar, pois nessas versões o java virá de fabrica repleto de anotações que visa desta forma tornar mais facil o desenvolvimento EE nos livrando dos já odiados xmls.
um exmplo de um código anotado :
@Id @Basic(optional = false) @Column(name = "id") private Integer id;
três linhas de meta código para 1 linha de código.
isso é o efeito colateral das annotations, ou seja, uma certa poluição do seu código fonte, mais isso me parece um bom preço a se pagar para se livrar dos xmls.
um preview das novas annotations.
Alguns Tech Days Hands-on Labs 2008 podem ser encontradas aqui
XMLBeans é uma ótima ferramenta para quem precisa trabalhar com XML, por exemplo, fazer uma integração entre dois sistemas utitlizando troca de arquivos em formato xml , para entender como essa ferramenta funciona é necessário ter algum conhecimento sobre XML Schema.
O que é XML Schema ? resumidamente esta ferramenta foi projetada para substituir as DTD , ou seja, é forma de definir e validar um documento XML.
Aqui um ótimo tutorial sobre XML Schema, neste tutorial iremos trabalhar com XML BEANS.
O que vamos fazer : Nosso sistema de comércio online deverá permitir o envio de pedido em formato XML este arquivo recebido deverá ser transformado em java bean com os seus respectivos dados.
Existem várias formas de se fazer essa tarefa mas com certeza usar xmlbeans é realmente uma forma elegante de resolver o problema.
A Seguir um passo a passo , antes de prosseguir é necessário instalar xml beans, instruções aqui.
Nosso arquivo que representa um novo pedido:
Pedido.xml
<?xml version="1.0"> <Pedido cliente_id="1"> <Item produto_id="10" quantidade="10" /> <Item produto_id="10" quantidade="10" /> </Pedido>
Nosso pequeno arquivo xsd(XML Schema):
Pedido.xsd
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pedido="http://www.alexflorentino.com/pedido" targetNamespace="http://www.alexflorentino.com/pedido" elementFormDefault="qualified"> <xs:element name="Pedido"> <xs:complexType> <xs:sequence> <xs:element name="Item" type="pedido:Item" /> </xs:sequence> <xs:attribute name="client_id" type="xs:int" use="required"/> </xs:complexType> </xs:element> <xs:complexType name="Item"> <xs:attribute name="produto_id" type="xs:int" use="required"/> <xs:attribute name="quantidade" type="xs:int" use="required"/> </xs:complexType> </xs:schema>
Este arquivo resumidamente descreve como um arquivo de pedido deve ser formatado.
Agora precisamos inserir em nosso arquivo de pedido uma referência ao nosso Arquivo XSD.
Pedido.xml
<?xml version="1.0" encoding="UTF-8"?> <Pedido cliente_id="1" xmlns="http://www.alexflorentino.com/pedido" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="pedido.xsd"> <Item produto_id="10" quantidade="10" /> <Item produto_id="10" quantidade="10" /> </Pedido>
Pronto! com esses artefatos criados precisamos agora rodar um comando mágico, no diretório onde você criou os arquivos pedido.xml e pedido.xsd, execute:
scomp -out pedido.jar pedido.xsd
lembre-se para este comando funcionar você precisa ter xml beans devidamente instalado.
Basicamente este comando irá criar um monte de código para você, código que trata todo o trabalho que você poderia ter ao trabalhar com arquivo xml em java.
Para isso basta inserir o arquivo pedido.jar(gerado com o comando anterior) na sua aplicação junto com as bibliotecas do xml beans.
exemplo o trecho de código abaixo ilustra o processamento do arquivo de pedido.
PedidoDocument pedidoDoc = PedidoDocument.Factory.parse(new File("pedido.xml"));
Pedido pedido = pedidoDoc.getPedido();
System.out.println("Client_id:"+pedido.getClientId());
System.out.println("XMLLIDO \n:"+pedidoDoc.toString());
repare neste código você acabou de ler o arquivo pedido.xml diretamente para o seu objeto java Pedido, sem qualquer preocupação com detalhes de leitura do arquivo xml.
Para finalizar, xmlbeans é uma ferramenta poderoza para o trabalho com arquivo xml quando você já tem xsd já definidos, um exemplo real : você quer integrar com sistema .Net e certamente o dono do sistema em .Net tem os arquivos xsd e lhe fornecerá com isso o tempo de integração cai drasticamente, né ?.
O XML Beans também evita a famosa programação orienta a String
já que você não precisa ficar lendo este arquivo xml, dentre muitas outras vantagens.
Baixe aqui os arquivos deste tutorial.
O Google junto com um variado e respeitável grupo de grandes empresas lançaram na última segunda-feira o Android que é uma plataforma aberta para o desenvolvimento de aplicativos móveis.
Detalhe, essa plataforma é baseada em Linux Kernel e Java(misto Java SE e outras bibliotecas como HttpClient, etc.).
Na verdade o Android inclui o Android SDK que é uma caixa de ferramenta para desenvolver aplicativos para rodar na plataforma, que é java, inclusive com um plugin para o Eclipse.
O impressionante Desta iniciativa é quantidade de participantes de peso enquanto o J2ME(CLDC) da Sun evolui a passos de tartaruga
Visite o hello world Android! para testar e aproveite deixe seus comentários!
A seguir segue um código de uma aplicação usando Hibernate a moda antiga, usando xml, é bem simples mais para marinheiros de primeira viagem será util. Você ira precisar do hibernate e suas libs e também do driver jdbc do MySQL.
Basicamente esta aplicação salva o objeto aluno no banco de dados.
A estrutura de arquivos do nosso exemplo:

hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver </property> <property name="hibernate.connection.url"> jdbc:mysql://localhost:3306/test </property> <property name="hibernate.connection.username"> root </property> <property name="hibernate.connection.password"> alex </property> <property name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="show_sql"> true </property> <property name="format_sql"> true </property> <property name="current_session_context_class"> thread </property> <property name="hbm2ddl.auto"> update </property> <mapping resource="hibernate/Aluno.hbm.xml" /> </session-factory> </hibernate-configuration>
Aluno.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="hibernate.Aluno" table="ALUNO"> <id name="id" column="ID"> <generator class="native" /> </id> <property name="nome" column="NOME" /> <property name="rg" column="RG" /> <property name="cpf" column="CPF" /> <property name="idade" column="IDADE" /> <property name="endereco" column="ENDERECO" /> <property name="cidade" column="CIDADE" /> </class> </hibernate-mapping>
vamos ao código java:
Aluno.java
public class Aluno {
private int id;
private String nome = "";
private String rg = "";
private String cpf = "";
private int idade;
private String endereco = "";
private String cidade = "";
//gets and setters
}
a classe principal:
Main.java
package hibernate;
import hibernate.HibernateUtil;
import org.hibernate.Session;
public class Main {
public static void main(String[] args) {
Aluno aluno = new Aluno();
aluno.setNome("Alex");
aluno.setEndereco("Brasil");
aluno.setIdade(23);
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.save(aluno);
session.getTransaction().commit();
}
}
e por último mais não menos importante nosso
HibernateUtil.java:
package hibernate;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static SessionFactory sessionFactory;
static {
try {
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch(Exception ex) {
ex.printStackTrace();
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Hoje resolvi testar este tal de Hibernate com já famosas annotations e para minha surpresa é extremamente simples e eficiente
.
Para ter isso rodando em sua maquina você primeiro precisa baixar o hibernate core e Hibernate Annotations que podem ser encontrados aqui, mais cuidado com as versões das bibliotecas, eu tive problemas em rodar hibernate com annotations mais o erro foi utilizar hibernate core 3.1 na verdade isso nunca daria certo, pois o hibernate annotations não é compativel com a versão 3.1 do Hibernate.
Você também precisa do driver jdbc do seu banco de dados, no caso utilizo o MySQL.
Pronto! com dezenas de megas baixados vamos para parte legal, o seguinte código tem um exemplo bem simples de ter isso rodando.
Basta criar um projeto java no fantástico eclipse adicionar os jars ao projeto(ou criar uma biblioteca com os jars) depois criar um pacote chamado test e por o seguintes os códigos:
O Java Bean :
package test;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.*;
@Entity
@Table(name="Address")
public class Address {
@Id @GeneratedValue
@Column(name="Address_ID")
private int id;
@Column(name="street")
private String street;
@Column(name="state")
private String state;
@Column(name="zipCode")
private String zipCode;
@Column(name="city")
private String city;
@Column(name="aptNumber")
private String aptNumber;
//get and setters, aqui
Nossa classe Main:
package test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class Main {
public static void main(String args[]) {
new Main().addAddress();
}
public void addAddress() {
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLDialect");
cfg.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
cfg.setProperty("hibernate.connection.url", "jdbc:mysql://localhost/test");
cfg.setProperty("hibernate.current_session_context_class", "thread");
cfg.setProperty("hibernate.connection.username", "root");
cfg.setProperty("hibernate.connection.password", "senhaaqui");
cfg.setProperty("hibernate.show_sql", "true");
cfg.setProperty("hibernate.hbm2ddl.auto", "create");
cfg.addAnnotatedClass(test.Address.class);
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
test.Address address = new test.Address();
address.setAptNumber("15");
address.setCity("ALA");
address.setState("SP");
address.setZipCode("1700000");
address.setStreet("Ola teste");
session.save(address);
session.getTransaction().commit();
sessionFactory.close();
}
}
execute a classe e se tudo correr bem, pronto você já tem hibernate + annotations rodando e pode continuar seus estudos.
Ótima documentação sobre apache tomcat e ssl.
http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html
Hoje a Sun anunciou que já esta disponível para download Java 6
Nesta nova versão do Java os esforços foram concentrados em melhoramentos de performace, segundo a Sun o aumento pode chegar na casa dos 2 digitos.
No Java para desktop foram adicionados suporte para: System tray, splash screen dentre outros.
No Java mustang como é conhecido esta nova versão também foram adicionado Dynamic language, com suporte Ruby, Python, etc.
para saber mais sobre as novidades: http://jcp.org/en/jsr/detail?id=270