novidades do jms 2.0

20

Upload: fernando-ribeiro

Post on 05-Dec-2014

237 views

Category:

Software


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Novidades do JMS 2.0
Page 2: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Novidades do JMS 2.0

Fernando RibeiroPrincipal Sales ConsultantSystems & Engineered Systems

Page 3: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Safe Harbor StatementThe following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Page 4: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Agenda

Visão Geral

Nova API

Integração com a Java EE 7

Novos Recursos

Q&A

1

2

3

4

5

Page 5: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Visão Geral• O JMS é uma das tecnologias mais importantes da plataforma Java EE. Além

de servidores de aplicação, como Oracle WebLogic, IBM WebSphere e Red Hat JBoss EAP, ela é usada com brokers de mensageria, como IBM MQ, Red Hat JBoss A-MQ e Pivotal RabbitMQ• O JMS foi atualizada no ano passado depois de 10 anos. Durante este

tempo, a plataforma mudou muito e surgiram novos requisitos• A nova versão inclui uma nova API, integração com a Java EE 7 e novos

recursos

Page 6: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Nova API• As interfaces Connection, Session, MessageProducer e MessageConsumer são substituídas pela nova interface JMSContext• Todas as interfaces estendem a interface java.lang.AutoCloseable• As novas interfaces não lançam checked exceptions

Page 7: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

API Clássica

try (Connection conn = connFactory.createConnection(); Session sess = conn.createSession(); MessageProducer prod = sess.createProducer(queue)) {

...

} catch (JMSException e) {

...

}

Page 8: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

API Simplificada

try (JMSContext ctx = connFactory.createContext()) {

...

}

Page 9: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Publishers• Não é mais necessário criar messages

Page 10: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

API Clássica

try (Connection conn = connFactory.createConnection(); Session sess = conn.createSession(); MessageProducer prod = sess.createProducer(queue)) {

TextMessage msg = sess.createTextMessage(text);

prod.send(msg);

} catch (JMSException e) {

...

}

Page 11: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

API Simplificada

try (JMSContext ctx = connFactory.createContext()) {

ctx.createProducer().send(queue, text);

}

Page 12: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Consumers• Não é mais necessário chamar o método start da classe Connection• O método receive da classe MessageConsumer é substituído pelo

método receiveBody da nova classe JMSConsumer

Page 13: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

API Clássica

try (Connection conn = connFactory.createConnection(); Session sess = conn.createSession(); MessageConsumer cons = sess.createConsumer(queue)) {

conn.start();

TextMessage msg = (TextMessage) cons.receive();

out.println(msg.getText());

} catch (JMSException e) {

...

}

Page 14: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

API Simplificada

try (JMSContext ctx = connFactory.createContext()) {

out.println(ctx.createConsumer(queue).receiveBody(String.class));

}

Page 15: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Integração com a Java EE 7• Existe uma nova connection factory padrão:@Resource(“lookup=java:comp/DefaultJMSConnectionFactory”) ConnectionFactory connFactory;

• Além disso, existem novas anotações para definir connection factories e destinations• Os novos contexts podem ser injetados facilmente:@Inject JMSContext ctx;

@Inject @JMSConnectionFactory(“jms/ExemploConnectionFactory”) JMSContext ctx;

Page 16: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Novos Recursos• Assinaturas compartilhadassess.createSharedConsumer(topic, “ExemploSubscription”);

sess.createSharedDurableConsumer(topic, “ExemploSubscription”);

• Envio assíncronoprod.send(queue, text, new ExemploCompletionListener());

• Atrasos de entregaprod.setDeliveryDelay(1000);

• Controle de entregas obrigatóriomsg.getJMSRedelivered();

Page 17: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Q&A

Page 18: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Referências• JMS 2.0 – https://jcp.org/en/jsr/detail?id=343• Oracle WebLogic – http://www.oracle.com/weblogic

Page 19: Novidades do JMS 2.0

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Page 20: Novidades do JMS 2.0