A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Mustang e Dolphin: o futuro do Java Mustang e Dolphin: O futuro do Java Michael “Mister M” Nascimento Santos.

Apresentações semelhantes


Apresentação em tema: "Mustang e Dolphin: o futuro do Java Mustang e Dolphin: O futuro do Java Michael “Mister M” Nascimento Santos."— Transcrição da apresentação:

1 Mustang e Dolphin: o futuro do Java Mustang e Dolphin: O futuro do Java Michael “Mister M” Nascimento Santos

2 Mustang e Dolphin: o futuro do Java Michael Nascimento Santos ● Co-fundador do SouJava ● Experts nas JSRs 207 (PD4J), 250 (Common Annotations) e 270 (Mustang) ● JSR Community Manager @ java.net ● Senior Technical Consultant @ Summa Technologies do Brasil ● Fundador do genesis e do ThinNB ● 6 anos de experiência com Java ● Palestrante no JavaOne 2003, Comdex, JustJava, Abaporu, FISL/Javali e BrasilOne

3 Mustang e Dolphin: o futuro do Java Lançamentos de Versões da Plataforma ● 1.4.0 – Merlin – 02/2002 ● 1.4.1 – Hopper – 10/2002 ● 1.4.2 – Mantis – 05/2003 ● 5.0 – Tiger – 09/2004 ● 6.0 – Mustang – H1/2006 ● 7.0 – Dolphin – H2/2007

4 Mustang e Dolphin: o futuro do Java Novo modelo de versionamento ● Versões com novas funcionalidades a cada 18-24 meses (eram 24-36) ● Fim das versões de manutenção (1.x.x) – Não vai haver Java 5.1 (tem gente esperando... :-P) ● Versões de atualização a cada dois meses (uma não saiu, estamos no Update 4) ● Evolução mais rápida da plataforma, com correções adotadas mais rapidamente e no prazo

5 Mustang e Dolphin: o futuro do Java Java 6 – Mustang – JSR 270 - Temas ● Compatibilidade e Estabilidade ● Monitoramento, Gerenciamento e Facilidade de Diagnóstico ● Facilidade de Desenvolvimento ● Enterprise Desktop ● XML & WebServices ● Transparência

6 Mustang e Dolphin: o futuro do Java JSR 270 - Transparência ● Projeto Peabody: codinome na Sun para iniciativa de tornar o desenvolvimento da plataforma mais colaborativo e transparente para a comunidade ● jdk.dev.java.net / mustang.dev.java.net ● Possibilita que contribuições externas sejam incorporadas ● Novas licenças: JRL e JIUL

7 Mustang e Dolphin: o futuro do Java Mustang - Definição do conteúdo ● JSR 270: Umbrella JSR – Principal objetivo é definir que outras JSRs irão compor esta versão – Alista outras pequenas novas funcionalidades que serão incorporadas a plataforma – Maior parte dos bugs corrigidos não faz parte dela, por serem bugs de implementação apenas ● Peabody & feedback da comunidade importantes

8 Mustang e Dolphin: o futuro do Java JSR 105: XML Digital Signature ● javax.xml.dsig ● Implementa W3C Digital Signature Specification ● Principal relevância para aplicações com troca segura de XML (militares, por exemplo) e parte importante da segurança em webservices ● Possui SPI e é bastante extensível

9 Mustang e Dolphin: o futuro do Java JSR 173: Streaming API for XML (StAX) ● javax.xml.stream ● Implementa novo modelo de manipulação de XML (pull / Iterator pattern) – Permite que o código solicite o próximo evento ( next() / hasNext()) – Permite que se possa parar o processamento a qualquer momento, “pular” seções do documento e selecionar subseções – Base das novas APIs de webservices

10 Mustang e Dolphin: o futuro do Java JSR 173: Streaming API for XML (StAX) URL u = new URL("http://www.soujava.org.br/"); InputStream in = u.openStream(); XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader parser = factory.createXMLStreamReader(in); while (true) { int event = parser.next(); if (event == XMLStreamConstants.END_DOCUMENT) { parser.close(); break; } if (event == XMLStreamConstants.START_ELEMENT) { System.out.println(parser.getLocalName()); }

11 Mustang e Dolphin: o futuro do Java JSR 181: WebServices Metadata ● javax.jws ● Define um conjunto de anotações e sua semântica para simplificar o desenvolvimento de webservices import javax.jws.WebService; import javax.jws.WebMethod; @WebService public class HelloWorldService { // Opcional @WebMethod public String helloWorld() { return "Hello World!"; }

12 Mustang e Dolphin: o futuro do Java JSR 199: Java Compiler API ● javax.tools ● Define uma API não só para o compilador (javac), mas para outras ferramentas integradas ao JDK (javax.tools.Tool) ● Possui classes específicas para o compilador, permitindo uso de sistemas de arquivos virtuais e registro de interface listener para receber as mensagens de erro do compilador

13 Mustang e Dolphin: o futuro do Java JSR 199: Java Compiler API import javax.tools.*; public class CompilerTest { public static void main(String... args) throws java.io.IOException { if (args.length != 1) { System.out.println(“Usage: CompilerTest ”); System.exit(1); } JavaCompilerTool compiler = ToolProvider.defaultJavaCompiler(); JavaFileManager manager = compiler.getBuiltInFileManager(); JavaFileObject file = manager.getFileForInput(args[0]); // primeiro parametro seria o Writer, por default usa o err manager.run(null, file); }

14 Mustang e Dolphin: o futuro do Java JSR 202: Java Class File Specification Update ● Permite um processo de verificação muito mais eficiente e rápido (split verifier, usado em J2ME) por modificar o bytecode, acrescentado um novo atributo chamado StackMapTable ● Aumenta os tamanhos máximos das diversas estruturas contidas no.class ● Adiciona suporte a literais (X.class) no bytecode

15 Mustang e Dolphin: o futuro do Java JSR 221: JDBC 4.0 ● Foco principal é acrescentar classes auxiliares, um modelo de anotações e explorar o uso de generics para simplificar o uso da API ● Nova hierarquia de exceções mais específica, ex: SQLIntegrityConstraintViolationException ● Através da combinação de interfaces como BaseQuery, QueryObjectGenerator e DataSet, junto com anotações, permite um uso que lembra O/RM

16 Mustang e Dolphin: o futuro do Java JSR 221: JDBC 4.0 public class Mammal { public String name; public String description; } public interface MyQueries extends BaseQuery { @Query("select name, description, age from mammal") DataSet getAllMammals(); } // em algum metodo... MyQueries mq = con.createQueryObject(MyQueries.class); DataSet rows = mq.getAllMammals(); for (Mammal m: rows) { System.out.println("Name = " + m.name); System.out.println("Description = " + m.description); }

17 Mustang e Dolphin: o futuro do Java JSR 222: JAXB 2.0 ● javax.xml.bind ● Implementa suporte a XML Schemas e retorno do suporte a DTDs ● Suporta modelo de definição baseado em anotações ● Diversas interfaces e pontos de customização permitem manipular a maneira como o binding é feito ● Usada como base para implementação da nova API de webservices

18 Mustang e Dolphin: o futuro do Java JSR 223: Scripting for the Java Platform ● javax.script ● Permite o uso de linguagens de script dentro da sua aplicação Java e permite expor certas instâncias para ambiente de scripting ● Possui SPI que permite adicionar suporte a novas linguagens de script ● Ame ou odeie, o JDK virá com suporte a JavaScript (só pra confundir um pouco mais :-P) através de uma adaptação do Rhino

19 Mustang e Dolphin: o futuro do Java JSR 223: Scripting for the Java Platform import javax.script.*; public class ScriptUsage { public static void main(String[] args) throws ScriptException { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine jsengine = manager.getEngineByExtension("js"); jsengine.eval("print('hello world')"); }

20 Mustang e Dolphin: o futuro do Java JSR 224: JAX-WS 2.0 ● Sucessor do JAX-RPC ● Suporta os últimos padrões do W3C: – SOAP 1.2 – XML Schema 1.0 – MTOM/XOP ● Suporta os últimos padrões do WS-I: – Basic Profile 1.1 – Attachment Profile 1.0

21 Mustang e Dolphin: o futuro do Java JSR 250: Common Annotations ● Padroniza algumas anotações comuns a outras JSRs, como EJB 3 (JSR 220) e JSR 224 ● No momento, dois principais grupos de anotações: – Segurança (@RunAs, @RolesAllowed etc) – Recursos (@Resource, @InjectionComplete etc) ● Escopo ainda depende das JSRs que compõem o Java EE 5

22 Mustang e Dolphin: o futuro do Java JSR 260: Javadoc Tag Update ● Mais tags e funcionalidades no Javadoc: – @extspec : linkar para especificação externa (ex: UNICODE) – @denigrated: similar ao @deprecated, mas significando simplesmente uso não recomendado (APIs públicas apenas para uso interno em outros pacotes, APIs não estáveis, etc.) – views: somente elementos para o usuário final iniciante, para o avançado, todos os elementos public / protected / deprecated / denigrated e a visão clássica – @nonspec: gera seção relativa à implementação, não a especificação “genérica”

23 Mustang e Dolphin: o futuro do Java JSR 269: Pluggable Annotation Processing API ● javax.lang.model ● javax.annotation.processing ● Padronização da API definida pelo utilitário APT ● Padronização parcial da estrutura de um arquivo fonte – Somente até o nível de declarações – Uma API de “reflection de sources”

24 Mustang e Dolphin: o futuro do Java Outras alterações ● Diversas outras JSRs menores ainda devem ser incluídas (especialmente de revisão) ● Muitas funcionalidades novas no desktop: – Antialiasing melhorado e suporte a baseline – Novos tipos de janelas modais – NaturalLayout (usado pelo Matisse/NetBeans) – Double buffering de verdade (sem Grey Screen of Uncertainty) – JNDC/JDIC e SwingWorker

25 Mustang e Dolphin: o futuro do Java Outras alterações ● Funcionalidades novas: – OutOfMemoryError com alguma informação útil – Tamanho do espaço livre, capacidade de unidades de disco e acesso e manipulação dos flags de arquivo (writable, readable, executable) em java.io.File – Melhorias nas APIs de JMX, JVMTI, JPDA – E muuuuitas outras

26 Mustang e Dolphin: o futuro do Java Java 7 – Dolphin – JSR ? TBD ● JSR 203 – More New I/O APIs ● JSR 277 – Java Module System ● Especulações: – JSR 274 – BeanShell – Suporte direto a XML – Suporte a friends com base em módulos (parte da JSR 277) – Referências diretas a campos e métodos – não como ponteiros e sim a java.lang.reflect.Field e java.lang.reflect.Method

27 Mustang e Dolphin: o futuro do Java Participe! ● Mustang está próximo do “feature freeze” ● Ainda há tempo para corrigir bugs e influenciar APIs ● Faça download dos builds semanais do Mustang: https://mustang.dev.java.net/ https://mustang.dev.java.net/ ● Leia as especificações que são do seu interesse ● Filie-se ao JCP e submeta sua candidatura a JSR do Dolphin quando ela aparecer

28 Mustang e Dolphin: o futuro do Java Obrigado mister__m@dev.java.net


Carregar ppt "Mustang e Dolphin: o futuro do Java Mustang e Dolphin: O futuro do Java Michael “Mister M” Nascimento Santos."

Apresentações semelhantes


Anúncios Google